学习笔记(01):Java并发编程精讲-线程状态及Java中线程常见方法

立即学习:https://edu.csdn.net/course/play/26270/326860?utm_source=blogtoedu

同步调用和阻塞区别:

同步调用时线程不一定是挂起状态。

线程状态:

NEW:被创建还没执行;

RUNNABLE(RUNNING,READY):线程已被放入Java虚拟机但有可能是在等待操作系统的资源(还没被操作系统处理器执行);

BLOCK:阻塞,正在等待监视器锁,来进入或重入synchronized;

WATING:等待,需其他线程中断或通知来唤醒;

TIMED_WATING:加了时长限制的等待,到时长后返回,或提前被中断或唤醒;

TERMINATED:已执行完毕。

线程调用的几种方法:

1.Thread.yield():线程让步,调用此方法,当前线程让出CPU资源,和其他线程重新一起再竞争资源来执行;

2.Thread.join():某一线程在调用该方法后,主线程或其他线程会等待此线程死亡或执行完毕后再执行;

3.Thread.sleep():线程休眠,调用方法后主动让出CPU一段时间,指定时间过后CPU会返回继续执行该线程,并且该线程不会释放持有的锁;

4.Object.wait():调用该方法前线程必须持有对象锁,调用此方法后,线程释放对象锁,进入WAITING状态,等其他线程调用notifyAll()等唤醒方法将自己唤醒,在拿到对象锁后继续之前的代码执行。

发布了28 篇原创文章 · 获赞 6 · 访问量 2458

猜你喜欢

转载自blog.csdn.net/Kobe_1314/article/details/104366826
今日推荐