多线程并发学习(一)


五个进程/线程阶段的状态转换图如下:


多线程并发学习(一)


分别对各个状态进行解释:

多线程并发学习(一)

其中,阻塞的情况分三种:

1. 等待阻塞:运行的线程执行wait()方法,JVM会把该线程放入等待池中。(wait会释放特有的锁)

2. 同步等待:运行的线程在获取对象的同步锁时,若该同步锁被别的线程占用,则JVM会把该线程放入锁池中

3. 其他阻塞:运行的线程执行sleep()或join()方法,或者发出了I/O请求时,JVM会把该线程置为阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入就绪状态。(注意,sleep是不会释放持有的锁)

相关文章:

  • 2021-10-12
  • 2021-04-11
  • 2021-07-10
  • 2022-12-23
  • 2021-11-29
  • 2021-11-05
  • 2021-12-22
猜你喜欢
  • 2021-09-15
  • 2022-02-10
  • 2022-12-23
  • 2021-05-27
  • 2021-11-25
  • 2021-05-20
  • 2021-09-08
相关资源
相似解决方案