Object类中wait带参方法和notifyAll方法-线程间通信

Object类中wait带参方法和notifyAll方法

void   wait   (在其他线程调用此对象的notify()方法或notifyAll()方法前,导致当前线程等待。
void   wait  (long timebut)  在其他线程调用此对象的notify()方法或notifyA11()方法,或者超过指定的时间量前,导致当前线程等待。

 

void  notifyAll    唤醒在此对象监视器上等待的所有线程。

 

 

 

线程间通信

概念:多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同。


比如︰线程A用来生成包子的,线程B用来吃包子的,包子可以理解为同一资源,线程A与线程B处理的动作,一个是生产,一个是消费,那么线程A与线程B之间就存在线程通信问题。

 

 

 

为什么要处理线程间通信︰


多个线程并发执行时,在默认情况下CPU是随机切换线程的,当我们需要多个线程来共同完成一件任务,并且我们希望他们有规律的执行,那么多线程之间需要一些协调通信,以此来帮我们达到多线程共同操作一份数据。

如何保证线程间通信有效利用资源︰

多个线程在处理同一个资源,并且任务不同时,需要线程通信来帮助解决线程之间对同一个变量的使用或操作。就是多个线程在操作同一份数据时,避免对同一共享变量的争夺。也就是我们需要通过一定的手段使各个线程能有效的利用资源。而这种手段即――等待唤醒机制。

posted @ 2022-07-08 10:37  ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ  阅读(19)  评论(0)    收藏  举报