python sleep和wait对比总结
在多线程的使用时,为了线程的顺利进行,我们会使用函数来对某个线程进行暂停运行。在多线程中有两个函数可以实现sleep和wait,不过它们在使用时也有不同之处。为了帮助大家更好理清它们之间的相同与区别点,本篇就python中sleep和wait两个函数展开具体的分析。
1.相同点
sleep和wait都是用来进行线程控制,都可以使线程阻塞。
(1)sleep(milliseconds)可以用时间指定来使他自动醒过来,如果时间不到你只能调用interreput()来强行打断;wait()可以用notify()/notifyAll()直接唤起.
(2)sleep是Thread类的静态方法。 sleep的作用是让线程休眠制定的时间,在时间到达时恢复,也就是说sleep将在接到时间到达事件事恢复线程 ; wait是Object的方法,也就是说可以对任意一个对象调用wait方法,调用wait方法将会将调用者的线程挂起,直到其他线程调用同一个对象的notify方法才会重新激活调用者
(3)sleep()是让某个线程暂停运行一段时间,其控制范围是由当前线程决定,wait()是由某个确定的对象来调用的。
2.sleep和wait的区别
(1)这两个方法来自不同的类分别是Thread和Object
(2)最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。
(3)wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用
(4)sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常
3.实例
import time time.sleep(5) time.sleep(N)
上面的time.sleep()可以暂停程序的执行,暂停的时间可以根据函数传的值来定。
到此这篇关于python sleep和wait对比总结的文章就介绍到这了,更多相关python sleep和wait对比分析内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
Python实现的文本对比报告生成工具示例
本文实例讲述了Python实现的文本对比报告生成工具.分享给大家供大家参考,具体如下: 借助于difflib的功能,可以针对我们的使用情况进一步进行功能的聚合.我想要的功能是输入两个文件名以及一个输出报告的文件名之后,运行直接给出最终的报告. 代码实现如下: import sys import difflib try: file1 = sys.argv[1] file2 = sys.argv[2] report = sys.argv[3] except Exception,e: print('E
-
使用Python进行目录的对比方法
如果进行单个文件的比较,可以使用difflib模块.虽然filecmp模块也能够进行单个文件的对比,但是前者能够提供观感更好的报告.如果我们只是想看一下两个目录中的某个文件是否一致而不关系其中的内容,那么后者或许是更改选的选择. 如果进行目录的对比,那么可以使用filecmp模块了. 在IPython中进行简单的命令交互演示功能如下: In [1]: import filecmp In [2]: ls Chapter_01/ Chapter_02/ In [3]: dirobj = filecm
-
python Tensor和Array对比分析
如下所示: 区别 Array Tensor 类型 uint8,float32系列 {} 各类型相互转换 uint8转float64:image = image * (2. / 255.) - 1 float64转uint8:image.astype(np.uint8) {} 扩充维度 image[np.newaxis, :] tf.expand_dims(image,axis=0) 数组拼接 np.concatenate([image, image], axis=0) tf.concat([fr
-
Python图像读写方法对比
1 实验标准 因为训练使用的框架是Pytorch,因此读取的实验标准如下: 1.读取分辨率都为1920x1080的5张图片(png格式一张,jpg格式四张)并保存到数组. 2.将读取的数组转换为维度顺序为CxHxW的Pytorch张量,并保存到显存中(我使用GPU训练),其中三个通道的顺序为RGB. 3.记录各个方法在以上操作中所耗费的时间.因为png格式的图片大小差不多是质量有微小差异的jpg格式的10倍,所以数据集通常不会用png来保存,就不比较这两种格式的读取时间差异了. 写入的实验标准
-
python sleep和wait对比总结
在多线程的使用时,为了线程的顺利进行,我们会使用函数来对某个线程进行暂停运行.在多线程中有两个函数可以实现sleep和wait,不过它们在使用时也有不同之处.为了帮助大家更好理清它们之间的相同与区别点,本篇就python中sleep和wait两个函数展开具体的分析. 1.相同点 sleep和wait都是用来进行线程控制,都可以使线程阻塞. (1)sleep(milliseconds)可以用时间指定来使他自动醒过来,如果时间不到你只能调用interreput()来强行打断;wait()可以用not
-
Python六大开源框架对比
Python 是一门动态.面向对象语言.其最初就是作为一门面向对象语言设计的,并且在后期又加入了一些更高级的特性.除了语言本身的设计目的之外,Python标准 库也是值得大家称赞的,Python甚至还自带服务器.其它方面,Python拥有足够多的免费数据函数库.免费的Web网页模板系统.还有与Web服务 器进行交互的库.这些都可以设计到你的Web应用程序里面. 回顾基于Python的6大Web应用框架: 1.Zope2 Zope 2是一款基于Python的Web应用框架,是所有Python W
-
PowerBI和Python关于数据分析的对比
前言 如果你对数据分析有一定的了解,那你一定听说过一些亲民好用的数据分析的工具,如Excel.Tableau.PowerBI等等等等,它们都是数据分析的得力助手.像经常使用这些根据的伙伴肯定也有苦恼的时候,不足之处也是显而易见:操作繁琐,复用性差,功能相对局限单一. 很多经常会用到数据分析的伙伴会问有没有一款便捷好用的工具!肯定有啊,Python的出现和普及,很容易就能改变这些窘境! 怎么解决呢?--Python Python有很多优点,如果你能很好的运用到工作中,会发现工作效率大大提升,涨薪也
-
JAVA及PYTHON质数计算代码对比解析
Java 实现 class PrimeNumber{ public static void main(String[] args) { long start=System.currentTimeMillis(); int count=0; label:for(int i=1;i<=100000;i++){ for (int j=2;j<=Math.sqrt(i);j++) { if(i%j==0){ continue label; //返回外层循环 } } count++; // System
-
Python高级应用实例对比:高效计算大文件中的最长行的长度
前2种方法主要用到了列表解析,性能稍差,而最后一种使用的时候生成器表达式,相比列表解析,更省内存 列表解析和生成器表达式很相似: 列表解析 [expr for iter_var in iterable if cond_expr] 生成器表达式 (expr for iter_var in iterable if cond_expr) 方法1:最原始 复制代码 代码如下: longest = 0f = open(FILE_PATH,"r")allLines = [line.strip()
-
Python多线程多进程实例对比解析
多线程适合于多io操作 多进程适合于耗cpu(计算)的操作 # 多进程编程 # 耗cpu的操作,用多进程编程, 对于io操作来说,使用多线程编程 import time from concurrent.futures import ThreadPoolExecutor, as_completed from concurrent.futures import ProcessPoolExecutor def fib(n): if n <= 2: return 1 return fib(n - 2)
随机推荐
- VUE JS 使用组件实现双向绑定的示例代码
- Python中Django框架利用url来控制登录的方法
- 最好用的省市二级联动 原生js实现你值得拥有
- jQuery插件制作的实例教程
- QWERTY密码:加密与解密vbs版
- JavaScript库 开发规则
- PHP网页游戏学习之Xnova(ogame)源码解读(十五)
- vue.js绑定class和style样式(6)
- Mysql数据库分库和分表方式(常用)
- Python中处理时间的几种方法小结
- MYSQL主从库不同步故障一例解决方法
- JQuery UI的拖拽功能实现方法小结
- jQuery 操作option的实现代码
- jquery仿微信聊天界面
- android读取assets文件示例
- Android中刷新界面的二种方法
- 详解Spring全局异常处理的三种方式
- 详解Java编程中super关键字的用法
- Android通过Handler与AsyncTask两种方式动态更新ListView(附源码)
- Android Bluetooth蓝牙技术使用流程详解