欢迎来到山村网

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

2019-03-02 12:45:44浏览:704 来源:山村网   
核心摘要:  本文实例讲述了python中threading超线程用法。分享给大家供大家参考。具体分析如下:  threading基于Java的线程模型设计。

  本文实例讲述了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():

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 # 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()的例子:

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # 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中base64加密解密方法实例分析

上一篇:

python实现合并两个数组的方法

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com