python之线程(threading)
线程是属于进程的,一个进程可能包含多个线程
至于线程和进程在使用时哪个更好,只能看使用的场景了
话不多说,看下线程模块(threading)的使用方法:
#导入模块
import threading,os,time,random
#创建一个测试函数subFunc
def subFunc(param,ppid):
sleepTime = random.randint(1,10)
print('Begin %s subProcess,and will wait %s,subPID is %s,mainPID is %s,threadName is %s'%(param,sleepTime,os.getpid(),ppid,threading.current_thread().name))
time.sleep(sleepTime)
print('End %s subProcess...'%param)
if __name__ == '__main__':
param = 5
print('Begin main process...')
threadingList = []
for i in range(5):
t = threading.Thread(target=subFunc,args=(i+1,os.getpid()),name='T'+ str(i))
t.start()
threadingList.append(t)
for t in threadingList:
t.join()
print('End main process...')
和进程的写法类似,都是先创建,在启动,最后加一个join等待所有线程结束在结束整个进程,如下为执行结果:
我们可以看到,pid和主进程中是保持一致的,线程的名称在创建线程时改成了T+i,所以显示为T0,T1....,如果不改名字,默认为Thread-1,Thread-2....
关于本篇内容如有转载请注明出处;技术内容的探讨、纠错,请发邮件到70907583@qq.com
浙公网安备 33010602011771号