#-*- coding:cp936 -*-
"""
避免使用thread 模块,。首先,更高级别的threading 模块更为先
进,对线程的支持更为完善,而且使用thread 模块里的属性有可能会与threading
出现冲突。其次,低级别的thread 模块的同步原语很少(实际上只有一个)
而threading 模块则有很多
另一个不要使用thread 原因是,对于你的进程什么时候应该结束完全没有控制,当主线程结束
时,所有的线程都会被强制结束掉,没有警告也不会有正常的清除工作。
函数 描述
thread 模块函数
start_new_thread(function,
args, kwargs=None) 产生一个新的线程,在新线程中用指定的参数和可选的
kwargs 来调用这个函数。
allocate_lock() 分配一个LockType 类型的锁对象
exit() 让线程退出
LockType 类型锁对象方法
acquire(wait=None) 尝试获取锁对象
locked() 如果获取了锁
thread模块提供了start_new_thread函数,用以创建线程。start_new_thread函数成功创建后还可以对其进行操作。
其函数原型:
start_new_thread(function,atgs[,kwargs])
其参数含义如下:
function: 在线程中执行的函数名
args:元组形式的参数列表。
kwargs: 可选参数,以字典的形式指定参数
"""
import thread
from time import sleep, ctime
def LOOP4():
print 'start loop4 at :', ctime()
sleep(4)
print 'loop4 done at :', ctime()
def Loop2():
print 'start loop2 at:', ctime()
sleep(2)
print 'loop2 done at :', ctime()
def Main():
print 'all start at:', ctime()
#LOOP4()
#Loop2()
"""
创建线程函数 thread.start_new_thread
"""
thread.start_new_thread(LOOP4, ())
thread.start_new_thread(Loop2, ())
sleep(6) #等待子线程结束,主线程退出
print 'all done at :', ctime()
if __name__ == '__main__':
Main()