python多线程控制暂停_python多线程控制
利用wait的阻塞机制, 就能够实现暂停和恢复了, 再配合循环判断标识位, 就能实现退出了
#!/usr/bin/env python
# coding: utf-8
import threading
import time
class Job(threading.Thread):
def __init__(self, *args, **kwargs):
super(Job, self).__init__(*args, **kwargs)
self.__flag = threading.Event() # 用于暂停线程的标识
self.__flag.set() # 设置为True
self.__running = threading.Event() # 用于停止线程的标识
self.__running.set() # 将running设置为True
def run(self):
while self.__running.isSet():
self.__flag.wait() # 为True时立即返回, 为False时阻塞直到内部的标识位为True后返回
print time.time()
time.sleep(1)
def pause(self):
self.__flag.clear() # 设置为False, 让线程阻塞
def resume(self):
self.__flag.set() # 设置为True, 让线程停止阻塞
def stop(self):
self.__flag.set() # 将线程从暂停状态恢复, 如何已经暂停的话
self.__running.clear() # 设置为False
测试代码
a = Job()
a.start()
time.sleep(3)
a.pause()
time.sleep(3)
a.resume()
time.sleep(3)
a.pause()
time.sleep(2)
a.stop()
python多线程控制暂停_python多线程控制相关推荐
- python 多线程读写文件_python多线程同步之文件读写控制
本文实例为大家分享了python多线程同步之文件读写控制的具体代码,供大家参考,具体内容如下 1.实现文件读写的文件ltz_schedule_times.py #! /usr/bin/env pyth ...
- python多核多线程编程实例_Python多线程
多线程基础概念 并行与并发并行:同时处理多个任务,必须在多核环境下 一段时间内同时处理多个任务,单核也可以并发 并发手段线程:内核空间的调度 进程:内核空间的调度 协程:用户空间的调度 线程可以允许程 ...
- python web框架 多线程和多进程_python 多线程和多进程
多线程与多进程 知识预览 一 进程与线程的概念 二 threading模块 三 multiprocessing模块 四 协程 五 IO模型 回到顶部 一 进程与线程的概念 1.1 进程 考虑一个场景: ...
- python实用程序育儿法_Python多线程 简明例子
Python多线程 简明例子 (2010-03-11 15:15:09) Python多线程 简明例子 综述 多线程是程序设计中的一个重要方面,尤其是在服务器Deamon程序方面.无论何种系统,线程调 ...
- python真正实现多线程的方法_python多线程几种方法实现
匿名用户 1级 2018-05-27 回答 Python进阶(二十六)-多线程实现同步的四种方式 临界资源即那些一次只能被一个线程访问的资源,典型例子就是打印机,它一次只能被一个程序用来执行打印功能, ...
- python多线程的作用_Python多线程中三个函数的强大功能简介
在Python多线程中有三个比较简单的函数,在实际的相关操作中你对这一实际操作是否了解?是否对其感兴趣?如果你想对Python多线程的开发与多线程程序及相关实际操作方案有所了解的话,你就可以点击以下的 ...
- python多线程共享全局变量_Python多线程-共享全局变量
多线程-共享全局变量 import threading import time g_num = 200 def test1(): global g_num for i in range(5): g_n ...
- python多线程控制暂停_python中的多线程编程与暂停、播放音频的结合
我们都知道python中可以是threading模块实现多线程, 但是模块并没有提供暂停, 恢复和停止线程的方法, 一旦线程对象调用start方法后, 只能等到对应的方法函数运行完毕. 也就是说一旦s ...
- python进程数上限_python如何控制进程或者线程的个数
背景 日常开发中,难免遇到并发场景,而并发场景难免需要做流量控制,即需要对并发的进程或者线程的总量进行控制. 今天简单总结两种常用的控制线程个数的方法. 方法一:进程池/线程池 如下例demo所示, ...
最新文章
- 程序员的“认知失调”
- vs.net2003在代理下的一个奇怪小问题
- Equipment download和自动生成的IBASE DB 信息
- javascript事件处理程序
- Java的三种代理模式完整源码分析
- 【three.js】库
- 腾讯总监周颢:亿级用户微信采用的架构宝典
- postgresql 修改表字段_关于一些postgresql特有的概念以及安装方法的叙述
- 数据挖掘-理解业务和数据(二)
- iphone用计算机显示器,如何将iPhone屏幕投射到电脑上
- 百度地图开发(一)----项目准备
- 网络编程、通信三要素、UDP快速入门、TCP通信、即时通信、模拟BS系统
- UI设计培训分享:UI设计的职业发展路径
- CTF-SQL注入入门题型
- Windows命令行打开常用设置/控制面板功能
- STM32F429i disco 体验
- tensorboard使用界面介绍以及使用方法(看这篇就够了,都有源码可以直接测试)
- mysql主从同步的三种模式
- 欧格教育:怎么提升店铺流量
- 任务栏的浏览器(包括chrome、IE、firefox等)主页被劫持
热门文章
- Cron 触发器及相关内容 (第三部分)
- vscode插件推荐
- html th表格居中,HTML----之表格
- redis应用场景java实例_redis使用场景和java测试案例
- Eclipse/STS 在线安装阿里java代码规约插件
- LINUX系统用户操作命令
- 345. Reverse Vowels of a String - LeetCode
- request.path 值危险
- 数据分析应用统计学之分散性与变异性的测量【极差、四分位差、偏态系数、峰态系数、统计指标】
- 深入理解C语言系列之C语言语法陷阱(考题常设置的陷阱点、必须避免的错误和缺陷类型)