python中threading超线程用法实例分析


Posted in Python onMay 16, 2015

本文实例讲述了python中threading超线程用法。分享给大家供大家参考。具体分析如下:

threading基于Java的线程模型设计。锁(Lock)和条件变量(Condition)在Java中是对象的基本行为(每一个对象都自带了锁和条件变量),而在Python中则是独立的对象。Python Thread提供了Java Thread的行为的子集;没有优先级、线程组,线程也不能被停止、暂停、恢复、中断。Java Thread中的部分被Python实现了的静态方法在threading中以模块方法的形式提供。

threading 模块提供的常用方法:

threading.currentThread(): 返回当前的线程变量。
threading.enumerate(): 返回一个包含正在运行的线程的list。正在运行指线程启动后、结束前,不包括启动前和终止后的线程。
threading.activeCount(): 返回正在运行的线程数量,与len(threading.enumerate())有相同的结果。

threading模块提供的类:

Thread, Lock, Rlock, Condition, [Bounded]Semaphore, Event, Timer, local.

Thread是线程类,与Java类似,有两种使用方法,直接传入要运行的方法或从Thread继承并覆盖run():

# encoding: UTF-8
import threading
# 方法1:将要执行的方法作为参数传给Thread的构造方法
def func():
  print 'func() passed to Thread'
t = threading.Thread(target=func)
t.start()
# 方法2:从Thread继承,并重写run()
class MyThread(threading.Thread):
  def run(self):
    print 'MyThread extended from Thread'
t = MyThread()
t.start()

构造方法:

Thread(group=None, target=None, name=None, args=(), kwargs={})
group: 线程组,目前还没有实现,库引用中提示必须是None;
target: 要执行的方法;
name: 线程名;
args/kwargs: 要传入方法的参数。

实例方法:

isAlive(): 返回线程是否在运行。正在运行指启动后、终止前。
get/setName(name): 获取/设置线程名。
is/setDaemon(bool): 获取/设置是否守护线程。初始值从创建该线程的线程继承。当没有非守护线程仍在运行时,程序将终止。
start(): 启动线程。
join([timeout]): 阻塞当前上下文环境的线程,直到调用此方法的线程终止或到达指定的timeout(可选参数)。

一个使用join()的例子:

# encoding: UTF-8
import threading
import time
def context(tJoin):
  print 'in threadContext.'
  tJoin.start()
  # 将阻塞tContext直到threadJoin终止。
  tJoin.join()
  # tJoin终止后继续执行。
  print 'out threadContext.'
def join():
  print 'in threadJoin.'
  time.sleep(1)
  print 'out threadJoin.'
tJoin = threading.Thread(target=join)
tContext = threading.Thread(target=context, args=(tJoin,))
tContext.start()

运行结果:

in threadContext.
in threadJoin.
out threadJoin.
out threadContext.

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
一些Python中的二维数组的操作方法
May 02 Python
MySQL最常见的操作语句小结
May 07 Python
Python中类的初始化特殊方法
Dec 01 Python
Python人脸识别初探
Dec 21 Python
python破解zip加密文件的方法
May 31 Python
python 拼接文件路径的方法
Oct 23 Python
Python后台开发Django的教程详解(启动)
Apr 08 Python
Django框架 querySet功能解析
Sep 04 Python
详解Python3 pickle模块用法
Sep 16 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
Feb 17 Python
python中count函数知识点浅析
Dec 17 Python
python tkinter实现定时关机
Apr 21 Python
python实现合并两个数组的方法
May 16 #Python
python简单实现基数排序算法
May 16 #Python
Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法
May 16 #Python
python中循环语句while用法实例
May 16 #Python
pymongo实现多结果进行多列排序的方法
May 16 #Python
python使用线程封装的一个简单定时器类实例
May 16 #Python
python通过函数属性实现全局变量的方法
May 16 #Python
You might like
php 网页游戏开发入门教程一(webgame+design)
2009/10/26 PHP
PHP5中Cookie与 Session使用详解
2013/04/30 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
2014/09/22 PHP
php中使用gd库实现下载网页中所有图片
2015/05/12 PHP
PHP树形结构tree类用法示例
2019/02/01 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
JavaScript 设计模式学习 Singleton
2009/07/27 Javascript
纯js实现瀑布流展现照片(自动适应窗口大小)
2013/04/08 Javascript
jquery.qtip提示信息插件用法简单实例
2016/06/17 Javascript
微信小程序 中wx.chooseAddress(OBJECT)实例详解
2017/03/31 Javascript
Angular2学习教程之ng中变更检测问题详解
2017/05/28 Javascript
js实现把时间戳转换为yyyy-MM-dd hh:mm 格式(es6语法)
2017/12/28 Javascript
深入浅析var,let,const的异同点
2018/08/07 Javascript
JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作整理总结
2019/06/27 Javascript
js中比较两个对象是否相同的方法示例
2019/09/02 Javascript
vue 实现LED数字时钟效果(开箱即用)
2019/12/08 Javascript
vant自定义二级菜单操作
2020/11/02 Javascript
[03:04]DOTA2超级联赛专访ZSMJ “莫名其妙”的逆袭
2013/05/23 DOTA
用Python进行简单图像识别(验证码)
2018/01/19 Python
python如何去除字符串中不想要的字符
2020/07/05 Python
对tf.reduce_sum tensorflow维度上的操作详解
2018/07/26 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
2019/06/03 Python
python计算n的阶乘的方法代码
2019/10/25 Python
基于YUV 数据格式详解及python实现方式
2019/12/09 Python
使用gunicorn部署django项目的问题
2020/12/30 Python
联想美国官方商城:Lenovo美国
2017/06/19 全球购物
ellesse美国官方商店:意大利高级运动服品牌
2019/10/29 全球购物
机电工程专业应届生求职信
2013/10/03 职场文书
个人委托书如何写
2014/09/25 职场文书
党建工作整改措施
2014/10/28 职场文书
2015年社区矫正工作总结
2015/04/21 职场文书
小学大队干部竞选稿
2015/11/20 职场文书
手把手教你制定暑期学习计划,让你度过充实的暑假
2019/08/22 职场文书
pytorch中的numel函数用法说明
2021/05/13 Python
MySQL如何使备份得数据保持一致
2022/05/02 MySQL
小喇叭开始广播了! 四十多年前珍贵老照片
2022/05/09 无线电