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实现knn算法
Dec 20 Python
python基于ID3思想的决策树
Jan 03 Python
dataframe设置两个条件取值的实例
Apr 12 Python
Python多进程与服务器并发原理及用法实例分析
Aug 21 Python
Python mutiprocessing多线程池pool操作示例
Jan 30 Python
python3正则提取字符串里的中文实例
Jan 31 Python
Python+OpenCv制作证件图片生成器的操作方法
Aug 21 Python
Django Model中字段(field)的各种选项说明
May 19 Python
python实现按键精灵找色点击功能教程,使用pywin32和Pillow库
Jun 04 Python
python如何输出反斜杠
Jun 18 Python
python 图像插值 最近邻、双线性、双三次实例
Jul 05 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
Nov 18 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导入csv文件碰到乱码问题的解决方法
2014/02/10 PHP
PHP实现四种基础排序算法的运行时间比较(推荐)
2016/08/11 PHP
php原生导出excel文件的两种方法(推荐)
2016/11/19 PHP
Yii框架实现多数据库配置和操作的方法
2017/05/25 PHP
PHP预定义接口――Iterator用法示例
2020/06/05 PHP
提升你网站水平的jQuery插件集合推荐
2011/04/19 Javascript
SyntaxHighlighter语法高亮插件使用说明
2011/08/14 Javascript
解决javascript:window.close()在chrome,Firefox下失效的问题
2013/05/07 Javascript
javascript alert乱码的解决方法
2013/11/05 Javascript
jQuery右下角旋转环状菜单特效代码
2015/08/10 Javascript
jQuery移动web开发之页面跳转和加载外部页面的实现
2015/12/04 Javascript
nodejs实现bigpipe异步加载页面方案
2016/01/26 NodeJs
把普通对象转换成json格式的对象的简单实例
2016/07/04 Javascript
Angular工具方法学习
2016/12/26 Javascript
canvas实现粒子时钟效果
2017/02/06 Javascript
layui导航栏实现代码
2017/05/19 Javascript
详解jquery插件jquery.viewport.js学习使用方法
2017/09/08 jQuery
r.js来合并压缩css文件的示例
2018/04/26 Javascript
封装微信小程序http拦截器过程解析
2019/08/13 Javascript
vue实现数据控制视图的原理解析
2020/01/07 Javascript
如何使用原生Js实现随机点名详解
2021/01/06 Javascript
[52:52]完美世界DOTA2联赛PWL S3 LBZS vs access 第一场 12.10
2020/12/13 DOTA
Python编写的com组件发生R6034错误的原因与解决办法
2013/04/01 Python
Python正则抓取新闻标题和链接的方法示例
2017/04/24 Python
python解析含有重复key的json方法
2019/01/22 Python
如何在Django项目中引入静态文件
2019/07/26 Python
Django多数据库的实现过程详解
2019/08/01 Python
python3中rank函数的用法
2019/11/27 Python
Python openpyxl 插入折线图实例
2020/04/17 Python
DELPHI面试题研发笔试试卷
2015/11/08 面试题
大学生实习自我鉴定
2013/12/11 职场文书
母亲节演讲稿范文
2014/01/02 职场文书
八项规定对照检查材料
2014/08/31 职场文书
组工干部演讲稿
2014/09/02 职场文书
canvas实现贪食蛇的实践
2022/02/15 Javascript
Python代码实现双链表
2022/05/25 Python