当前位置: 首页 > news >正文

Java线程中sleep()、wait()、yield()、join()方法的使用

1.sleep()

sleep(): sleep 方法属于 Thread 类,该行为中线程不会释放锁,只阻塞线程,让出cpu给其他线程,当达到指定的时间后会自动恢复运行状态继续运行。

2.wait()

wait(): 该方法属于 Object 类,在这个过程里线程会释放对象锁,只有当其他线程调用 notify()或notifyAIl()才能唤醒此线程。wait 使用时必须先获取对象锁,如果没有在synchronized 修饰的代码块中使用时wait()方法运行时会抛出异常。

3.yield()

yield(): yield是 Thread 类中的方法,能够暂停当前正在执行的线程对象,不会释放资源锁,也被称为礼让线程,和 sleep 不同的是 yield方法并不会让线程进入阻塞状态,而是让线程重回就绪状态,使用该方法后,需要与其它线程再次重新争夺CPU,谁抢到谁执行。

4.join()

join(): 在当前线程中,只有等待所有调用join()方法的线程都执行完些后,当前线程才可以继续执行。一般用于等待异步线程执行完结果之后才能继续运行的情况中。通常谁调用,谁先完成执行。

5.notify()、notifyAll()

notify(): 唤醒某个当前对象锁等待的线程
notifyAll(): 唤醒所有当前对象锁等待的线程

http://www.lryc.cn/news/204713.html

相关文章:

  • 【机器学习】数据均衡学习笔记
  • 【软件教程】如何用C++交叉编译出能在Android运行的ELF程序或so动态库
  • 进阶JAVA篇- Map 系列集合的遍历方法与常用API
  • Auth.js:多合一身份验证解决方案 | 开源日报 No.60
  • SpringBoot整合Activiti7——任务监听器(七)
  • 电解电容寿命与哪些因素有关?
  • Opencv-图像插值与LUT查找表
  • 我为什么写博客?写博客给我带来了什么?
  • jdk11的HttpClient
  • Redis的优势
  • C++ string 类的其他操作
  • structs2 重构成SpringBoot架构
  • 【MATLAB源码-第56期】基于WOA白鲸优化算法和PSO粒子群优化算法的三维路径规划对比。
  • 【WinForm详细教程一】WinForm中的窗体、Label、TextBox及Button控件、RadioButton和CheckBox、ListBox
  • 【SwiftUI模块】0060、SwiftUI基于Firebase搭建一个类似InstagramApp 3/7部分-搭建TabBar
  • PureFlash云原生存储部署方法
  • SqueezeNet 一维,二维网络复现 pytorch 小白易懂版
  • Java 数据结构
  • python sqlalchemy(ORM)- 02 表关系
  • Http长连接同一个socket多个请求和响应如何保证一一对应?
  • Standford Compiler Course Assignment 2
  • 基于Java的校园论坛管理系统设计与实现(源码+lw+部署文档+讲解等)
  • 谈谈你对Spring的理解
  • 系统架构师考试易混淆知识点总结
  • 反射的作用( 越过泛型检查 和 可以使用反射保存所有对象的具体信息 )
  • 前端开发实践:vue中用qrcode库将超链接生成二维码图片
  • 数据库连接池有什么用?它有哪些关键参数?
  • Android Settings解析
  • Spring+spring mvc+mybatis整合的框架
  • 02-2、PyCharm中文乱码的三处解决方法