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

铜煤建设网站wordpress注册设置密码

铜煤建设网站,wordpress注册设置密码,杭州企业排行榜,wordpress修改角色管理_thread模块除了可以派生线程外#xff0c;还提供了基本的同步数据结构#xff0c;又称为锁对象#xff08;lock object#xff0c;也叫原语锁、简单锁、互斥锁、互斥和二进制信号量#xff09;。 下面是常用的线程函数#xff1a; 函数描述start_new_thread(function,…_thread模块除了可以派生线程外还提供了基本的同步数据结构又称为锁对象lock object也叫原语锁、简单锁、互斥锁、互斥和二进制信号量。 下面是常用的线程函数 函数描述start_new_thread(function,args,kwargsNone)派生一个新的线程使用给定的args和可选的kwargs来执行functionallocate_lock()分配LockType对象exit()退出线程指令LockType锁对象的方法acquire(waitNone)尝试获取锁对象locked()如果获取了锁对象则返回True否则返回Falserelease()释放锁 _thread模块的核心函数是start_new_thread()。专门用来派生新的线程。 我们对上节文章的onethr.py文件稍作修改 #!/usr/bin/env pythonimport _thread from time import sleep,ctimedef loop0():print(开始循环0次在,ctime())sleep(4)print(结束循环0次在,ctime())def loop1():print(开始循环1次在,ctime())sleep(2)print(结束循环1次在,ctime()) def main():print(开始于,ctime())loop0()loop1()print(所有的任务都完成于,ctime())def main():print(starting at:, ctime())_thread.start_new_thread(loop0, ())_thread.start_new_thread(loop1, ())sleep(6)print(all done at:, ctime())if __name__ __main__:main( 执行该脚本三遍结果 PS C:\Users\WC python E:\Python3.6.3\workspace\mtsleepA.py starting at: Mon Mar 26 21:56:10 2018 开始循环1次在 Mon Mar 26 21:56:10 2018 开始循环0次在 Mon Mar 26 21:56:10 2018 结束循环1次在 Mon Mar 26 21:56:12 2018 结束循环0次在 Mon Mar 26 21:56:14 2018 all done at: Mon Mar 26 21:56:16 2018 PS C:\Users\WC python E:\Python3.6.3\workspace\mtsleepA.py starting at: Mon Mar 26 22:00:43 2018 开始循环0次在 Mon Mar 26 22:00:43 2018 开始循环1次在 Mon Mar 26 22:00:43 2018 结束循环1次在 Mon Mar 26 22:00:45 2018 结束循环0次在 Mon Mar 26 22:00:47 2018 all done at: Mon Mar 26 22:00:49 2018 PS C:\Users\WC python E:\Python3.6.3\workspace\mtsleepA.py starting at: Mon Mar 26 22:00:56 2018 开始循环0次在 Mon Mar 26 22:00:56 2018 开始循环1次在 Mon Mar 26 22:00:56 2018 结束循环1次在 Mon Mar 26 22:00:58 2018 结束循环0次在 Mon Mar 26 22:01:00 2018 all done at: Mon Mar 26 22:01:02 2018 由上面的代码可知start_new_thread()必须包含两个参数即使要执行的函数不需要参数也要传递一个空元组。 我们注意到loop0还是loop1开始的顺序竟然可以是无序的loop0和loop1是同时执行的loop1是在loop0之前结束的整个程序一共耗时6秒。 我们可以说loop0和loop1是并发执行的。 我们在主程序其实也就是主线程中增加了一个sleep(6)的语句这其实是为了避免主程序结束的时候loop0和loop1两个线程还没有结束的问题。这也是_thread模块的一种线程同步机制。 但是我们要说这样使用sleep()来进行线程同步是不靠谱的这也是_thread的一个弊端所在。 这时我们可以引用锁机制来实现相应的线程管理并且同时改善单独的循环函数实现方式 import _thread from time import sleep, ctime #不再把4秒和2秒硬性的编码到不同的函数中而是使用唯一的loop()函数并把这些常量放进列表loops中 loops[4,2] #代替了之前的loop*()函数三个参数分别代表了处于第几个循环中睡眠时间和锁对象。每个循环执行到最后一句的时候释放锁对象告诉主线程该线程已完成 def loop(nloop,sec,lock):print(开始循环,nloop,在,ctime())sleep(sec)print(循环,nloop ,结束于,ctime())lock.release()def main():print(开始于,ctime())locks[]nloopsrange(len(loops))#第一个for循环中创建了一个锁的列表通过thread.allocate_lock()方法得到锁对象再通过acquire()方法取到锁相当于把锁锁上取到之后就可以把它添加到锁列表locks中。for i in nloops:lock_thread.allocate_lock()lock.acquire()locks.append(lock)#第二个for循环中主要用于派生线程。每个线程都会调用loop()函数并传递循环号、睡眠时间以及用于该线程的锁。 for i in nloops:_thread.start_new_thread(loop,(i,loops[i],locks[i]))#第三个for循环按照顺序检查每个锁。每个线程执行完毕后都会释放自己的锁对象。这里使用忙等待让主线程等所有的锁都释放后才继续执行for i in nloops:while locks[i].locked():passprint(所有的任务完成于,ctime())if __name__ __main__:main() 执行结果 开始循环 1 在 Mon Mar 26 22:49:25 2018 开始循环 0 在 Mon Mar 26 22:49:25 2018 循环 1 结束于 Mon Mar 26 22:49:27 2018 循环 0 结束于 Mon Mar 26 22:49:29 2018 所有的任务完成于 Mon Mar 26 22:49:29 2018 上述结果除了表名两次循环是并发执行的之外整个程序一共用时4秒而不是之前的6秒。
http://www.dnsts.com.cn/news/177677.html

相关文章:

  • 百度搜不倒公司网站网站开发框架是什么
  • 书w3school网站建设教程it行业培训机构哪个好
  • 设计什么网站简单公司企业网站建设多少钱
  • 在线学习软件开发网站建设中国建设银行网站首页怎么销户
  • html 网站开发软件爱上链外链购买平台
  • 网站开发无形资产wordpress 移动端接口
  • 绚丽的网站欣赏网站推广工作
  • 网站做优化效果怎样杭州网站seo
  • 建站之星怎么用黄山区建设学会网站
  • 对软件开发的理解和认识一键优化为什么不能100
  • vs2013做网站一起做网店17zwdcom
  • 网站设计与规划论文哈尔滨seo和网络推广
  • 郑州网站建设模板制作企业网站报价模板下载
  • 外贸网站建设十大标准外贸网站建站中国建设工程造价网站
  • 旅游网站开发公司专业网页设计费用
  • wordpress主题会员功能首页排名优化公司
  • 七夕表白网站制作做外贸一般上什么网站
  • 网站开发实训心得网站开发毕设
  • 扬州中兴建设有限公司网站建设公司怎么做网站运营
  • 河南县wap网站建设公司iis 发布网站内部服务器错误
  • 建设网站需要了解些什么东西做公司网站联系公司
  • 企业网站建设方案流程赣州经开区最新规划图
  • 网站开发需求分析参考文献什么是平台设计
  • c 语言做网站做汽车配件生意的网站
  • wordpress轮播图插件郑州网站建设搜索优化
  • 做社区网站用什么程序好为什么资讯网站荣誉被收录
  • 西宁网站建设君博解决免费企业网页申请制作步骤
  • 微信里面小程序怎样优化网站排名
  • wordpress适用于图片站的主题有出国做飞机求同行的网站
  • 没有版权可以做视频网站吗中小企业网站制作公司