首页 > 其他分享 >线程通信

线程通信

时间:2023-05-18 22:02:35浏览次数:33  
标签:调用 对象 notifyAll 通信 线程 notify 等待

线程的通信

wait() 与 notify() 和 notifyAll()

  • wait():令当前线程挂起并放弃CPU、同步资源并等待,使别的线程可访问并修改共享资源,而当 前线程排队等候其他线程调用notify()或notifyAll()方法唤醒,唤醒后等待重新获得对监视器的所有 权后才能继续执行。
  • notify():唤醒正在排队等待同步资源的线程中优先级最高者结束等待
  • notifyAll ():唤醒正在排队等待资源的所有线程结束等待.

这三个方法只有在synchronized方法或synchronized代码块中才能使用,否则会报 java.lang.IllegalMonitorStateException异常。因为这三个方法必须有锁对象调用,而任意对象都可以作为synchronized的同步锁, 因此这三个方法只能在Object类中声明。

wait() 方法

  • 在当前线程中调用方法: 对象名.wait()
  • 使当前线程进入等待(某对象)状态 ,直到另一线程对该对象发出 notify (或notifyAll) 为止。
  • 调用方法的必要条件:当前线程必须具有对该对象的监控权(加锁)
  • 调用此方法后,当前线程将释放对象监控权 ,然后进入等待
  • 在当前线程被notify后,要重新获得监控权,然后从断点处继续代码的执行

notify()/notifyAll()

  • 在当前线程中调用方法: 对象名.notify()
  • 功能:唤醒等待该对象监控权的一个/所有线程
  • 调用方法的必要条件:当前线程必须具有对该对象的监控权(加锁)

标签:调用,对象,notifyAll,通信,线程,notify,等待
From: https://blog.51cto.com/u_15977171/6307306

相关文章

  • delphi实现modbus通信
    -------------------------------------------------------------基础单元----start-----------------------------------------------------------------------------{********************************************************************}{*单元名称:UntM......
  • 车载测试系列:汽车ECU通信之时间同步测试验证
    时钟同步功能给车载系统提供统一的时间基准,在高级别智能驾驶、视音频时钟同步、数据上传分析等场景中发挥着越来越重要的作用。目前以太网时钟同步协议中,使用最多的为精准时钟同步协议(GeneralizedPrecisionTimeProtocol,gPTP),遵循IEEE802.1AS标准。在AUTOSAR中也有对应的......
  • PB6接SCL,PB7接SDA,IIC通信访问 24C02, STM32F103的HAL版本
    在野火霸道板子上,已有at24c02,256个字节。/*测试代码*/staticuint8_tflag;uint8_tdata_w[]={1,2,3,4,5};uint8_tdata_r[5]={0};AT24CXX_Init();//初始化IIC接口flag=AT24CXX_Check();//检查器件if(flag==0){u16Writ......
  • 基于算法通信过程中的常用协议介绍
    基于算法通信过程中的常用协议介绍1、HTTP(HypertextTransferProtocol):HTTP是一种应用层协议,用于客户端和服务器之间的通信。它基于请求-响应模型,通过发送HTTP请求和接收HTTP响应来进行通信。HTTP协议常用于Web应用中,可以用于传输算法请求和响应数据。2、REST(Representation......
  • python 线程池使用
    代码应用场景:需要对数据库中的数据进行批量查询,然后将查询到的结果每条分别写入不同的文本文件中。由于数据数量较多,考虑使用线程池减少时间开销。#核心代码逻辑importpymysqlfromdbutils.pooled_dbimportPooledDBimportthreadingclassprocessing:def__init__(s......
  • 数字通信调制方式的误码率matlab仿真,包括OOK,PRK,FSK以及QAM
    1.算法仿真效果matlab2022a仿真结果如下: 2.算法涉及理论知识概要      传输模拟信号时一样,传输数字信号时也有三种基本的调制方式:幅移键控(ASK)、频移键控(FSK)和相移键控(PSK)。它们分别对应于用载波(正弦波)的幅度、频率和相位来传递数字基带信号,可以看成是模拟线性调......
  • 数字通信调制方式的误码率matlab仿真,包括OOK,PRK,FSK以及QAM
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要传输模拟信号时一样,传输数字信号时也有三种基本的调制方式:幅移键控(ASK)、频移键控(FSK)和相移键控(PSK)。它们分别对应于用载波(正弦波)的幅度、频率和相位来传递数字基带信号,可以看成是模拟线性调制和角度调制的特......
  • 微服务之间的通信方式
    目录微服务之间的通信方式根据场景选择对应的通信方式异步通信区别与选择.Net示例java示例微服务之间的通信方式微服务之间的通信方式常见的有以下几种:同步通信:微服务之间通过请求-响应的方式进行通信,例如RESTfulAPI和RPC。通信过程中,请求方需要等待响应方的返回结果,因此可靠......
  • MATLAB仿真dscdma直接序列扩频通信系统 仿真过程使用不同的扩频码对发送
    MATLAB仿真dscdma直接序列扩频通信系统仿真过程使用不同的扩频码对发送信息进行扩频,扩频码可以使m序列或Glod序列,由自己选择,扩频后的数据经过脉冲成形滤波器后通过瑞丽衰落信道同时到达接收端,在接收端分别对不同的用户信息数据进行相关解扩,恢复各个用户的原始信息。ID:6710644052......
  • 料箱输送线程序,带目的地跟踪,提供设备布局图和电气图纸以及博途程序。
    料箱输送线程序,带目的地跟踪,提供设备布局图和电气图纸以及博途程序。程序语言较多使用了STL,程序仅供学习参考。硬件配置:PLC:1515-2PNHMI:TP700Confort主要设备有:英特诺直流辊筒电机,控制卡MultiControl;条码阅读器SickCLV620;和MiniLoad堆垛机通过Anybus模块通讯;称重模块品牌碧彩B......