开启线程的两种方式
#方式一
import threading
import time
def run(n):
time.sleep(2)
print("runing",n)
start_time=time.time()
if __name__ == '__main__':
t1=threading.Thread(target=run,args=("T1",)) #线程
t2=threading.Thread(target=run,args=("T2",))
t1.start()
t2.start()
print("主线程")
#输出结果:
'''
主线程
runing T1
runing T2
'''
#方式二
#类的线程
import threading
import time
class pronse(threading.Thread):
def __init__(self,n):
super(pronse,self).__init__()
self.n=n
def run(self):
time.sleep(0.22)
print("%s is runing !!"% self.n)
if __name__=='__main__':
p1=pronse("薛琪")
p2=pronse("张立朋")
p1.start()
p2.start()
print("主线程")
在这里举一个简单的例子,子线程与主线程的优先执行顺序:
import time
import threading
def run(n):
print("task:",n)
time.sleep(2) #等待两秒
print("task_done:",n)
start_time=time.time()
if __name__=='__main__':
for i in range(50): #创建50次,非常迅速的创建完毕
t=threading.Thread(target=run,args=("t--%s" %i,))
t.start() #开启线程
print("主线程 is all finsind") #此时主线程已运行完毕,时间也打印出来了为:0.017952442169189453
print(time.time()-start_time) #但整个程序尚未结束,等待两秒后子线程打印完毕,结束整个程序
'''
输出结果为:
task_done: t--1
task_done: t--3
task_done: t--5
task_done: t--6
task_done: t--4
task_done: t--8
task_done: t--9
task_done: t--7
task_done: t--10
task_done: t--12
task_done: t--11
task_done: t--13
task_done: t--14
task_done: t--17
task_done: t--15
task_done: t--16
task_done: t--19
task_done: t--20
task_done: t--18
task_done: t--21
task_done: t--22
task_done: t--24
task_done: t--25
task_done: t--23
task_done: t--27
task_done: t--26
task_done: t--28
task_done: t--31
task_done: t--32
task_done: t--30
task_done: t--29
task_done: t--33
task_done: t--34
task_done: t--35
task_done: t--36
task_done: t--39
task_done: t--40
task_done: t--37
task_done: t--38
task_done: t--43
task_done: t--42
task_done: t--41
task_done: t--45
task_done: t--44
task_done: t--46
task_done: t--47
task_done: t--48
task_done: t--49
'''
注:小编现在还是正在学习的一个菜鸟,如有错请多多指教