sleep() 和 wait() 区别是什么?
时间:2019-06-14
本文章向大家介绍sleep() 和 wait() 区别是什么?,主要包括sleep() 和 wait() 区别是什么?使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1、每个对象都有一个锁来控制同步访问,Synchronized关键字可以和对象的锁交互,来实现同步方法或同步块。sleep()方法正在执行的线程主动让出CPU(然后CPU就可以去执行其他任务),在sleep指定时间后CPU再回到该线程继续往下执行(注意:sleep方法只让出了CPU,而并不会释放同步资源锁!!!)。
wait()方法则是指当前线程让自己暂时退让出同步资源锁,以便其他正在等待该资源的线程得到该资源进而运行,只有调用了notify()方法,之前调用wait()的线程才会解除wait状态,可以去参与竞争同步资源锁,进而得到执行。(注意:notify的作用相当于叫醒睡着的人,而并不会给他分配任务,就是说notify只是让之前调用wait的线程有权利重新参与线程的调度);
2、sleep()方法可以在任何地方使用;wait()方法则只能在同步方法或同步块中使用;
3、sleep()是线程线程类(Thread)的方法,调用会暂停此线程指定的时间,但监控依然保持,不会释放对象锁,到时间自动恢复;wait()是Object的方法,调用会放弃对象锁,进入等待队列,待调用notify()/notifyAll()唤醒指定的线程或者所有线程,才会进入锁池,不再次获得对象锁才会进入运行状态;
原文地址:https://www.cnblogs.com/yuban10032/p/11020712.html
- 将linux下的rm命令改造成mv到指定的目录下
- (36) 泛型 (中) - 解析通配符 / 计算机程序的思维逻辑
- Python优化第一步: 性能分析实践
- Python云计算框架:OpenStack源码分析之RabbitMQ(二)
- 编程获得CPU的主频
- Python多进程并行编程实践:以multiprocessing模块为例
- 由函数clock想到的
- (34) 随机 / 计算机程序的思维逻辑
- 创建和使用Windows静态链接库
- (37) 泛型 (下) - 细节和局限性 / 计算机程序的思维逻辑
- 快速失败Vs安全失败(Java迭代器附示例)
- Flask-SocketIO 文档译文
- 屏幕输出VS文件输出
- 判断一个数是不是2的幂
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- hadoop完全分布式之集群分发脚本
- 牛逼!9种方法让你访问Github提速到2MB/s!
- pyhton之如何将类的属性和方法设置成私有类型
- 【colab pytorch】查看gpu、cuda、cudnn信息
- 【colab pytorch】设置随机种子
- (三)django--带Template的网站
- spring之IOC(控制反转)和DI(依赖注入)
- 【colab pytorch】指定使用的显卡
- Python自学成才之路 迭代器的使用
- 回溯法--全排列
- 【colab pytorch】张量操作
- 『开发技巧』python :与-> 操作来给函数参数增加元信息
- 【python-leetcode78-子集】子集
- 【colab pytorch】模型定义
- 初级爬虫--爬取拉勾网职位信息