java语言 百分网手机站

Java 如何进行线程同步

时间:2020-09-14 10:39:26 java语言 我要投稿

Java 如何进行线程同步

  线程的同步知识也是公司面试必考知识,同学们在去面试前一定要复习一下,下面就给大家复习一下线程的知识:

Java 如何进行线程同步

  线程在执行过程中,可以处于下面几种状态:

  就绪(Runnable):线程准备运行,不一定立马就能开始执行。

  运行中(Running):进程正在执行线程的.代码。

  等待中(Waiting):线程处于阻塞的状态,等待外部的处理结束。

  睡眠中(Sleeping):线程被强制睡眠。

  I/O阻塞(Blocked on I/O):等待I/O操作完成。

  同步阻塞(Blocked on Synchronization):等待获取锁。

  死亡(Dead):线程完成了执行。

  线程的同步主要靠下面几个方法:

  1、wait():使一个线程处于等待状态,并且释放所持有的对象的lock,注意wait的线程是不会自动唤醒的。

  2、sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常,注意这个方法是不会释放锁的,而是持有锁停止多少秒后自动唤醒。

  3、notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。

  4、notityAll():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。

【Java 如何进行线程同步】相关文章:

Java线程同步的优先级介绍12-08

java多线程同步块实例讲解素材11-24

浅谈如何使用java多线程12-06

java Runnable接口如何创建线程10-03

java多线程介绍12-07

java多线程教程11-21

什么是java主线程12-07

关于Java多线程介绍11-22

Java线程面试题10-05

Java 5线程池使用09-29