threading模块使用_threading简介(创建多线程的两种方法)★
#####一、什么是threading?
**threading是一個(gè)創(chuàng)建多線程的庫(kù)(調(diào)用threading庫(kù)的threading.Thread方法)**
**語(yǔ)法為**```threading.Thread(target=函數(shù)名,args=(函數(shù)參數(shù)1,....函數(shù)參數(shù)n),name=’線程名’)```
---
#####二、threading的使用方法
**1、創(chuàng)建線程的思路1:先定義函數(shù)再用Thread方法創(chuàng)建線程**
**案例代碼:**
```
import threading #導(dǎo)入threading庫(kù)
#定義要傳入線程的函數(shù)test
def test(num):
print('在{0}中,傳入test函數(shù)的參數(shù)是:{1}'.format(threading.current_thread().name,num))
def main():
#創(chuàng)建第一個(gè)線程,賦值給t1
t1 = threading.Thread(target=test,args=(10,),name='thread_NO_1')
#創(chuàng)建第二個(gè)線程,賦值給t2
t2 = threading.Thread(target=test,args=(20,),name='thread_NO_2')
t1.start() #t1調(diào)用start方法,即第一個(gè)線程開始啟動(dòng)
t2.start()
t1.join() #t1調(diào)用join方法,即等第一個(gè)線程結(jié)束后,主線程才結(jié)束
t2.join()
if __name__ == '__main__':
main()
```
輸出結(jié)果:
```
在thread_NO_1中,傳入test函數(shù)的參數(shù)是:10
在thread_NO_2中,傳入test函數(shù)的參數(shù)是:20
```
**2、創(chuàng)建線程的思路2:先定義類并在類內(nèi)部重寫run方法,再用Thread方法創(chuàng)建線程**
**案例代碼:(常用)**
```
import threading #導(dǎo)入threading庫(kù)
#定義一個(gè)繼承threading.Thread的子類,并重寫run方法
class test(threading.Thread):
#定義特殊方法__init__,即創(chuàng)建類的實(shí)例時(shí),需要伴隨傳入類的屬性值[即run方法中所需的參數(shù)]
def __init__(self,thread_name,num):
threading.Thread.__init__(self)
self.num = num
self.thread_name = thread_name
#定義run方法
def run(self):
print('在{0}中,傳入test函數(shù)的參數(shù)是{1}'.format(self.thread_name,self.num))
#定義主線程的main方法
def main():
t1 = test('thread_NO_01',10) #創(chuàng)建類的實(shí)例t1,并傳入兩個(gè)類的屬性值,給run方法使用
t2 = test('thread_NO_02',20)
t1.start() #t1調(diào)用start方法
t2.start()
t1.join() #t1調(diào)用join方法
t2.join()
if __name__ == '__main__': #判斷當(dāng)前運(yùn)行模塊名字是本地模塊時(shí),執(zhí)行下面塊內(nèi)語(yǔ)句
main() #調(diào)用主線程的main方法
```
輸出結(jié)果:
```
在thread_NO_01中,傳入test函數(shù)的參數(shù)是10
在thread_NO_02中,傳入test函數(shù)的參數(shù)是20
```
總結(jié)
以上是生活随笔為你收集整理的threading模块使用_threading简介(创建多线程的两种方法)★的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: centos6.8安装完成后重启进不去登
- 下一篇: 返回1到n的所有组合python_如何在