Java(等待唤醒机制)
等待唤醒机制
一、概念
多个线程处理同一个资源,但是处理的动作(线程任务)却不同;
二、为什么要处理线程间通信
多线程并发执行时,在默认情况下CPU是随机切换线程的,
当需要多个线程共同完成同一件任务,并且我们希望它有规律的执行
那么多线程之间需要一些协调通信,一次来达到多线程共同操作一份数据;
三什么是等待唤醒机制
是多线程间的一种协作机制
等待唤醒中的方法
1、wait():线程不再活动,不再参与调度,进入wait set中,因此不会浪费CPU资源,不会竞争锁,
它还要等别的线程执行一个特别的动作(notify),在这个对象上等待的线程从wait set 中释放出来,重新进入到调度队列(ready queue)中
2、notify:则选取通知对象的wait set 中的一个线程释放
3、notifyAll:则释放锁通知对象的wait set上的全部线程

浙公网安备 33010602011771号