java语言

Java 如何进行线程同步

时间:2025-01-20 00:52:33 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线程同步的方法05-27

java多线程的同步和异步02-02

Java线程同步的优先级介绍04-10

java中如何停止线程08-14

如何使用java多线程05-04

如何创建并运行Java线程01-11

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

Java线程同步的优先级是什么04-24

关于java实现线程同步的方式有哪些06-01