线程学习知识点总结
2021-06-20 14:03
标签:string 次数 常用 border 计算 执行 getname dir 参数 说起线程,咱们得先了解一下几个词语:线程,进程,程序,多线程,多进程。 线程的状态 线程的状态至少有四种:新建状态,就绪状态,运行状态,(阻塞状态),死亡状态 1.新建状态 当线程被(new)创建的时候,此时的线程的状态为新建状态 线程的创建方式有三种(有的书还有资料说只有两种) ①:继承Thread类 通过继承Thread类,重写run方法(线程的主方法体),调用start()方法来启动线程。 ②:实现runnable接口 通过实现runnable接口(任务接口),重写接口中的run()方法(线程任务的方法体),创建线程,然后将实现类的实例作为线程参数,然后调用start()方法启动线程 ③:通过使用FutureTask 使用FutureTask来创建线程,然后用Callable来创建任务(即重写callable中的call()方法,返回值为null),然后将FutureTask作为参数创建线程 2.就绪状态 当线程创建后,线程就进入新建状态,如果不调用线程的start()方法,线程就不会进入就绪状态。调用start()方法后线程进入可运行线程池进行等待获取cpu资源 3.运行状态 当线程获取到cpu资源后,线程就开始运行,但是每个线程并不一定是执行完了属于自己的线程体的内容,再去执行下一个线程(当要执行完线程体内容时间过短时)。每个线程被分为为若干个片段,它们获取到的cpu资源不能被其一直占有,它们运行的时候是走走停停,达到所谓的并发执行,且它们的执行次序与其获取cpu资源的概率(能力)有关,获取的概率越大,就执行的次数越多。 4.死亡状态 当线程的方法体执行完毕 5.阻塞状态(并不是每一个线程都会有这种状态) ①.等待阻塞:当前线程所占用的cpu资源被剥夺,等待再次获得cpu。线程休眠 ②.同步阻塞:锁对象被其他线程占用,当前线程等待其他线程释放锁对象 ③.其他阻塞:sleep(),join(). 附录:常用方法 void run() 如果这个线程使用单独的 long getId() 导致正在执行的线程以指定的毫秒数加上指定的纳秒数来暂停 (临时停止执行),这取决于系统定时器和调度器的精度和准确性 线程学习知识点总结 标签:string 次数 常用 border 计算 执行 getname dir 参数 原文地址:https://www.cnblogs.com/xiao-bd/p/9689004.html
Runnable
运行对象构造,则调用该Runnable
对象的run
方法; 否则,此方法不执行任何操作并返回void start()
导致此线程开始执行; Java虚拟机调用此线程的
run
方法。
返回此线程的标识符
String getName()
返回此线程的名称
int getPriority()
返回此线程的优先级
Thread.State getState()
返回此线程的状态
void interrupt()
中断这个线程
void setDaemon()
设置为守护线程
void join()
等待这个线程死亡
void sleep(long miles)
下一篇:Java笔试题(2)