何鑫思想是:
decorator是多线程安全的
看如下代码, 思想就是
让线程A进入decorator并loop, 首先打印pause
让线程B进入decorator, 如果打印, 证明是线程安全的

import multiprocessing
import threading
import time
import osdef decorator(func):def _inner(*args, **kwargs):while args[0].status == 0:print threading.current_thread().ident, 'pause'time.sleep(5)func(*args, **kwargs)return _innerclass A(threading.Thread):def __init__(self):super(A, self).__init__()self.status = 1def pause(self):self.status = 0print threading.current_thread().ident, 'receive pause'def recover_form_pause(self):self.status = 1def run(self):print threading.current_thread().ident, 'start'time.sleep(1)self.func1()@decoratordef func1(self):print threading.current_thread().ident, 'func1'time.sleep(1)self.func2()@decoratordef func2(self):print threading.current_thread().ident, 'func2'time.sleep(1)self.func3()@decoratordef func3(self):print threading.current_thread().ident, 'func3'self.func1()time.sleep(1)if __name__ == '__main__':print 'main thread', threading.current_thread().identp1 = A()p1.start()p1.pause()time.sleep(2)p2 = A()p2.start()p2.pause()# p1.recover_form_pause()# p2.recover_form_pause()

python 多线程暂停功能相关推荐

  1. Python 多线程、守护进程、同时运行最大线程数、锁、线程阻塞(线程暂停和继续)

    python 多线程的使用笔记 1.多线程的基本用法 (1)简单任务多线程的开启方式 from threading import Thread import timedef target(name, ...

  2. python多线程的作用_Python多线程中三个函数的强大功能简介

    在Python多线程中有三个比较简单的函数,在实际的相关操作中你对这一实际操作是否了解?是否对其感兴趣?如果你想对Python多线程的开发与多线程程序及相关实际操作方案有所了解的话,你就可以点击以下的 ...

  3. python暂停和恢复游戏_pygame游戏之旅 添加游戏暂停功能

    pygame游戏之旅 添加游戏暂停功能 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  pygame游戏之旅 添加游戏暂停功能.txt ] (友情提示:右键点上行 ...

  4. Python多线程原理与实现

    Date: 2019-06-04 Author: Sun Python多线程原理与实战 目的: (1)了解python线程执行原理 (2)掌握多线程编程与线程同步 (3)了解线程池的使用 1 线程基本 ...

  5. Python多线程及其使用方法

    [Python之旅]第六篇(三):Python多线程及其使用方法 python 多线程 多线程使用方法 GIL 摘要: 1.Python中的多线程     执行一个程序,即在操作系统中开启了一个进程, ...

  6. python多线程详解 Python 垃圾回收机制

    文章目录 python多线程详解 一.线程介绍 什么是线程 为什么要使用多线程 总结起来,使用多线程编程具有如下几个优点: 二.线程实现 自定义线程 守护线程 主线程等待子线程结束 多线程共享全局变量 ...

  7. python 多线程和协程结合_Python 异步编程,看这门课就够了~

    我们常见的 Linux.Windows.Mac OS 操作系统,都是支持多进程的多核操作系统.所谓多进程,就是系统可以同时运行多个任务.例如我们的电脑上运行着 QQ.浏览器.音乐播放器.影音播放器等. ...

  8. 浅谈Python多线程

    线程 一.什么是线程? 操作系统原理相关的书,基本都会提到一句很经典的话: "进程是资源分配的最小单位,线程则是CPU调度的最小单位". 线程是操作系统能够进行运算调度的最小单位. ...

  9. Day9 - Python 多线程、进程 --转自金角大王

    本节内容 操作系统发展史介绍 进程.与线程区别 python GIL全局解释器锁 线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生产者 ...

最新文章

  1. 【CTF】实验吧 The Flash-14
  2. 第16届智能小车用AURIX™ 资料汇总
  3. php 反序列化漏洞简介
  4. Python跨文件全局变量的方法
  5. python打飞机源代码-如何用 Python 打飞机 ?
  6. 解决 TortoiseGit 诡异的 Bad file number 问题(转)
  7. Nature | 基于66种癌症类型训练机器学习模型,绘制癌症基因潜在驱动突变图谱...
  8. pads元件类型如何修改_pads logic元件库修改了,怎样更新到原理图
  9. php语言输出九九乘法表_PHP 输出九九乘法表
  10. 一些oracle基础
  11. Java编程:树(基础部分)
  12. 计算机网络毕业设计汇报ppt,计算机ppt毕业设计模板
  13. (Java-11)简单的银行账户模拟
  14. 服务器对接qq微信聊天,java仿QQ微信聊天室功能的实现
  15. C语言实现【小游戏——飞机大战】
  16. Hive误删除后,如何恢复数据
  17. 【云和恩墨业务介绍】之数据库性能优化服务
  18. php图片翻转,php识别翻转iphone拍摄的颠倒图片
  19. 栈和队列的区别,栈和堆得区别
  20. 2018年第九届C/C++ A组蓝桥杯省赛真题(python解法)

热门文章

  1. PostgreSQL命令恢复dmp类型的数据备份
  2. 线上千人首映礼,阿修罗成首部3D片源
  3. 网络接入方式常用的有两种
  4. java jxl 解析excel,java使用jxl解析Excel
  5. jupyter 创建新的python3 时,出现错误:Permission denied: Untitled.ipynb
  6. 失业暴增,痛苦转行、危机来袭普通人如何做好职业规划?
  7. kafka部分属性配置字段详解
  8. 怎么打印CAD工程设计图纸?打印预览是空白怎么办?
  9. 【报告分享】构建直播电商全新生态闭环-浙商证券(附下载)
  10. 游戏建模和原画哪个更适合我?5年,10年,哪个行业发展前景更好