Python包-Numpy记录

  • threading用于提供线程相关的操作,线程是应用程序中工作的最小单元。python当前版本的多线程库没有实现优先级、线程组,线程也不能被停止、暂停、恢复、中断。

  • threading模块提供的类
    Thread, Lock, Rlock, Condition, [Bounded]Semaphore, Event, Timer, local。

  • threading 模块提供的常用方法

    1. threading.currentThread(): 返回当前的线程变量。
    2. threading.enumerate(): 返回一个包含正在运行的线程的list。正在运行指线程启动后、结束前,不包括启动前和终止后的线程。
    3. threading.activeCount(): 返回正在运行的线程数量,与len(threading.enumerate())有相同的结果。
  • threading 模块提供的常量
    threading.TIMEOUT_MAX 设置threading全局超时时间。

代码实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# coding:utf-8
import threading
import time
ISOTIMEFORMAT='%Y-%m-%d %X'
def action(arg):
print 'sub thread start!the thread name is:%s\r' % threading.currentThread().getName() ,
print time.strftime( ISOTIMEFORMAT, time.localtime( time.time() ) )
time.sleep(5)
print 'the arg is:%s\r' %arg ,
print time.strftime( ISOTIMEFORMAT, time.localtime( time.time() ) )


for i in xrange(1000):
t =threading.Thread(target=action,args=(i,))
t.setDaemon(True)
# print time.strftime( ISOTIMEFORMAT, time.localtime( time.time() ) )
t.start()
while True:
#判断正在运行的线程数量,如果小于5则退出while循环,
#进入for循环启动新的进程.否则就一直在while循环进入死循环
if(len(threading.enumerate()) < 20):
break




t.join()
print 'main_thread end! :',
print time.strftime( ISOTIMEFORMAT, time.localtime( time.time() ) )

线程

多线程模块参考资料

-------------本文结束感谢您的阅读-------------