死磕Java多线程-入门前篇
2021/5/5 12:26:00
本文主要是介绍死磕Java多线程-入门前篇,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录- 前言
- 一、实现线程的方法有多少种
- 如何调用的线程单元的代码呢?
- start和run方法的区别
前言
你如果是刚开始学习线程的知识,那么你可以看下这篇文章,本文章虽然不能带着你学习全部的线程知识,但是可以先带你看一下基本的知识,在以后的学习中可以更加顺畅
一、实现线程的方法有多少种
在网上百度线程实现的方法,可以看到有很多种
- 继承Thread类,重写run方法
- 实现Runnable接口,重写run方法。
- 通过Callable和RutureTask创建线程
在网上有很多种说法,当然这些说法也是正确的,它们确实可以创建出线程来,但是看到它们的线程的源码后,你可以发现它们无非是通过Thread类或者是实现Runnable接口来实现的。
在Oracle的官方文档中也有这样写过:
如何调用的线程单元的代码呢?
在此先来看下在使用了Thread.start的方法后会进行舒什么样的操作呢?上面说到不管使用的哪一种方法来创建的线程,都要重写run方法,当使用实现runnable类的时候,将它做为一个参数传入Thread构造中,在调用其中的run方法。
当使用了继承Thread类的方式中,会将Thread类run方法全部的重写,所执行的run里面的代码是重写后的
start和run方法的区别
- start(): 作用是启动一个新的线程,然后会执行相应的run方法,不过Start不可以重复的调用
- Run(): run可以被重复的调用,如果是单独的调用的话,就会和普通方法一样,不会有有新线程的产生,
start方法不可以重复调用的原因是,在调用start时候,线程的状态也会改变,当在调用start时,会有一个检测线程状态的代码,如果不是0(0代表的是new状态)就会抛出线程状态异常。
这篇关于死磕Java多线程-入门前篇的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南