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判断、获取一张图片主色调的2个实例
Apr 10 Python
Centos5.x下升级python到python2.7版本教程
Feb 14 Python
Python返回真假值(True or False)小技巧
Apr 10 Python
python实现应用程序在右键菜单中添加打开方式功能
Jan 09 Python
[原创]python爬虫(入门教程、视频教程)
Jan 08 Python
Python3实现统计单词表中每个字母出现频率的方法示例
Jan 28 Python
Python3.5文件修改操作实例分析
May 01 Python
Python三元运算与lambda表达式实例解析
Nov 30 Python
python中的错误如何查看
Jul 08 Python
Django实现微信小程序支付的示例代码
Sep 03 Python
python 5个实用的技巧
Sep 27 Python
Python图像处理之图像拼接
Apr 28 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 递归效率分析
2009/11/24 PHP
PHP中遍历stdclass object的实现代码
2011/06/09 PHP
php实现获取文章内容第一张图片的方法
2014/11/04 PHP
thinkPHP框架实现的无限回复评论功能示例
2018/06/09 PHP
php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)
2020/07/24 PHP
巧妙破除网页右键禁用的十大绝招
2006/08/12 Javascript
ajax无刷新动态调用股票信息(改良版)
2008/11/01 Javascript
JS 去前后空格大全(IE9亲测)
2013/07/15 Javascript
微信浏览器内置JavaScript对象WeixinJSBridge使用实例
2015/05/25 Javascript
简述JavaScript的正则表达式中test()方法的使用
2015/06/16 Javascript
JS实现处理时间,年月日,星期的公共方法示例
2019/05/31 Javascript
解决微信小程序中的滚动穿透问题
2019/09/16 Javascript
JS实现省市县三级下拉联动
2020/04/10 Javascript
JS制作简易计算器的实例代码
2020/07/04 Javascript
vue-cli中实现响应式布局的方法
2021/03/02 Vue.js
Python ORM框架SQLAlchemy学习笔记之数据查询实例
2014/06/10 Python
python实现的简单RPG游戏流程实例
2015/06/28 Python
Opencv+Python 色彩通道拆分及合并的示例
2018/12/08 Python
python 的topk算法实例
2020/04/02 Python
英国第一的购买便宜玩具和游戏的在线购物网站:Bargain Max
2018/01/24 全球购物
Bealls Florida百货商店:生活服饰、家居装饰和鞋子
2018/02/23 全球购物
尤妮佳moony海外旗舰店:日本殿堂级纸尿裤品牌
2018/02/23 全球购物
adidas瑞典官方网站:购买阿迪达斯鞋子和运动服
2019/12/11 全球购物
万豪国际住宅与别墅集团:Homes & Villas by Marriott International
2020/10/08 全球购物
Java的接口和C++的虚类的相同和不同处
2014/03/27 面试题
医学生职业规划范文
2014/01/05 职场文书
迟到检讨书5000字
2014/01/31 职场文书
产品开发计划书
2014/04/27 职场文书
药剂专业求职信
2014/06/20 职场文书
研究生导师评语
2014/12/31 职场文书
个性发展自我评价2015
2015/03/09 职场文书
个人自荐书怎么写
2015/03/26 职场文书
2015小学教师年度工作总结
2015/05/12 职场文书
学校团代会开幕词
2016/03/04 职场文书
Go语言中break label与goto label的区别
2021/04/28 Golang
Win11怎样将锁屏账户头像图片改成动画视频
2021/11/21 数码科技