python多线程(二)

开启线程的两种方式

#方式一
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
'''

注:小编现在还是正在学习的一个菜鸟,如有错请多多指教

猜你喜欢

转载自blog.csdn.net/qq_41102061/article/details/84430920
今日推荐