立即學習:https://edu.csdn.net/course/play/24458/296437?utm_source=blogtoedu
開啟線程的兩種方法:threading.Thread
?
1.方法一:
from threading import Thread
import time#方式一:直接使用thrending下的Thread類
def mythread(name):print('我是%s'%name)time.sleep(0.5)if __name__ == '__main__':t1 = Thread(target=mythread,args=('子進程1',))t1.start()print('主進程運行結束')#這里有一個進程兩個線程,主進程、主線程、子線程
上面是子線程的創建,下面是子進程的創建,注意區分
#方式一:使用python內置模塊multiprocessing下的process類
from multiprocessing import Process
import time#定義進程函數
def task(name):print('%s is running!'%name)time.sleep(3)print('%s is done!'%name)if __name__ == '__main__':#調用process類,并且實例化# p = Process(target=task,kwargs={'name','子進程1'})p = Process(target=task,args=('子進程1',))p.start()print('主')
2.方法二:
#方式二:創建繼承于Thread類的自定義類
from threading import Thread
import timeclass mythread(Thread):def __init__(self,name):#注意:下面兩行的代碼的順序不能換,否則會出現錯誤assert self._initialized, "Thread.__init__() not called"AssertionError: Thread.__init__()not calledsuper().__init__()self.name = name#創建運行函數def run(self):print('我是%s'%self.name)time.sleep(1)if __name__ == '__main__':t = mythread('子進程1')t.start()print('主進程')#含有一個主進程,一個主線程和一個子線程
?