也许这会有帮助:import threading

class MyQueue:

def __init__(self):

self.tasks = []

self.tlock = threading.Semaphore(0)

self.dlock = threading.Lock()

self.aborted = False

def put(self, arg):

try:

self.dlock.acquire()

self.tasks.append(arg)

finally:

self.dlock.release()

self.tlock.release()

def get(self):

if self.aborted:

return None

self.tlock.acquire()

if self.aborted:

self.tlock.release()

return None

try:

self.dlock.acquire()

if self.tasks:

return self.tasks.pop()

else: # executed abort

return None

finally:

self.dlock.release()

def abort(self):

self.aborted = True

self.tlock.release()

# TESTING

mq = MyQueue()

import sys

def tlog(line):

sys.stdout.write("[ %s ] %s\n" % (threading.currentThread().name, line))

sys.stdout.flush()

def reader():

arg = 1

while arg is not None:

tlog("start reading")

arg = mq.get()

tlog("read: %s" % arg)

tlog("END")

import time, random

def writer():

try:

pos = 1

while not mq.aborted:

x = random.random() * 5

tlog("writer sleep (%s)" % x)

pending = x

while pending > 0:

tosleep = min(0.5, pending)

if mq.aborted:

return

time.sleep(tosleep)

pending -= tosleep

tlog("write: %s" % x)

mq.put("POS %s val=%s" % (pos, x))

pos += 1

finally:

tlog("writer END")

def testStart():

try:

for i in xrange(9):

th = threading.Thread(None, reader, "reader %s" % i, (), {}, None)

th.start()

for i in xrange(3):

th = threading.Thread(None, writer, "writer %s" % i, (), {}, None)

th.start()

time.sleep(30) # seconds for testing

finally:

print "main thread: abort()"

mq.abort()

if __name__ == "__main__":

testStart()

python死机怎么办_Python线程死机相关推荐

  1. 主线程 子线程死掉_当线程死时,子进程也会死

    我有一个程序可以触发Python计时器来生成子进程.一旦程序终止或终止,这些子进程就应该终止.为了做到这一点,我使用了"prctl hack",它设置了一旦父对象死亡,子对象应该接 ...

  2. python多线程队列处理_Python线程和队列使用的一点思考

    Python线程和队列使用的一点思考 1. 斗哥采访环节请问为什么要使用线程? 答:为了提高程序速度,代码效率呀. 请问为什么要使用队列? 答:个人认为队列可以保证线程安全,实现线程间的同步,比较稳. ...

  3. python蓝牙上位机开发_python做上位机 - osc_2frv0wjp的个人空间 - OSCHINA - 中文开源技术交流社区...

    参考文章: https://blog.csdn.net/dgut_guangdian/article/details/78391270 https://www.cnblogs.com/lanceyu/ ...

  4. python 异步 生产者 消费者_python 线程通信 生产者与消费者

    1 """ 2 线程通信的生产者与消费者3 python的queue模块中提供了同步的线程安全的队列类,都具有原子性,实现线程间的同步4 Queue (FIFO: fis ...

  5. python timer详解_python线程定时器Timer实现原理解析

    这篇文章主要介绍了python线程定时器Timer实现原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.线程定时器Timer原理 原理比较 ...

  6. python 定时器实现原理_python线程定时器Timer实现原理解析

    这篇文章主要介绍了python线程定时器Timer实现原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.线程定时器Timer原理 原理比较 ...

  7. iphone定时关机_成都苹果维修点教你iPhone手机死机、关不了机怎么处理?

    死机,是每一个手机都难免会碰到的问题.纵然流利如iPhone手机,也免不了死机.手机屏幕失灵.关不了机等故障.今天,成都苹果维修点就来教大家iPhone手机死机.关不了机该怎么处理? 如果你有什么关于 ...

  8. 三星电视显示服务器无响应,三星液晶电视死机怎么办 三星液晶电视死机解决方法...

    用智能电视看视频.玩游戏已经是现在生活中常见的场景了.我们经常会下载各种好玩的游戏和好看的视频,可能时不时会有一些闪退卡顿的小问题,偶尔还会遇到电视死机,智能电视死机了怎么办?马上回复出厂设置?马上去 ...

  9. python系统工作原理_Python之路——堡垒机原理及其简单实现

    1 堡垒机基本概述 其从功能上讲,它综合了核心系统运维和安全审计管控两大主干功能,从技术实现上讲,通过切断终端计算机对网络和服务器资源的直接访问,而采用协议代理的方式,接管了终端计算机对网络和服务器的 ...

最新文章

  1. pandas索引复合索引dataframe数据、索引其中多个水平(level)的多个数据行(index rows from different levels)、使用元组tuple表达复合索引的指定行
  2. 小程序之 转发/分享
  3. 情人节微信红包数据公布,你离海王与海后有多远...
  4. 人工智能离我们有多远/近?
  5. 200905阶段一C++链表与继承特性
  6. C语言的编译链接过程的介绍
  7. csv文件怎么转成excel_Python操作Excel文件(1):花式大师pyexcel
  8. ItelliJ IDEA下载及获取注册码详解
  9. linux引导过程和服务控制
  10. c语言【const】用法
  11. 机器学习算法总结(六)——EM算法与高斯混合模型
  12. 喷墨打印机一体机清零软件使用图解
  13. BT5 WIFI破解
  14. mac/windows用Chrome浏览器截取长图
  15. Linux: SSH免密登录配置完了不生效
  16. 前端校招该考察什么?一个面试官的思考
  17. 视觉特效专家24点行业工作经验总结
  18. 华为od统一考试B卷【按身高体重排队】C语言 实现
  19. Dubbo03【管理控制台和监控中心搭建】
  20. js中文首字母排序(二)

热门文章

  1. 银行数字化转型导师坚鹏:金融数据治理、数据安全政策解读
  2. 我的博客在网易上 http://wwbb-0991.blog.163.com/ qq:9387929
  3. android pad连接电视,安卓平板连接电视机的方法谁了解?
  4. dnf打团显示服务器即将关闭,DNF:游戏服务器炸锅?当天在打团的小伙伴,你们还好吗...
  5. SQL轻松入门(2):复杂查询与综合分析
  6. ipad如何连接VNC
  7. which is和which are在句号里区别
  8. 提升SEO效果,数据能起多大的作用?
  9. Java-单元测试方法
  10. 针不戳,数据库性能优化八大方案。