最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python的多線程原來可以這樣解

 更新時間:2022年01月09日 17:06:58   作者:lijin111222  
這篇文章主要為大家介紹了python的多線程,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

多線程

多線程類似于同時執(zhí)行多個不同程序,多線程運行有如下優(yōu)點:

使用線程可以把占據長時間的程序中的任務放到后臺去處理。
用戶界面可以更加吸引人,比如用戶點擊了一個按鈕去觸發(fā)某些事件的處理,可以彈出一個進度條來顯示處理的進度。
程序的運行速度可能加快。
在一些等待的任務實現上如用戶輸入、文件讀寫和網絡收發(fā)數據等,線程就比較有用了。在這種情況下我們可以釋放一些珍貴的資源如內存占用等等。

創(chuàng)建線程

一個進程里面必然有一個主線程。

創(chuàng)建線程的兩種方法
繼承Thread類,并重寫它的run()方法
import threading
import time
cLass MyThread(threading.Thread):
	def__ init__ (seLf, n):
		super (MyThread, seLf).__ init__()
		self.n = n
	def run(self):
		print('以類的方式創(chuàng)建多線程',self.n)
		time.sleep(3)
r1 = MyThread(1)
r2 = MyThread(2)
r1.start()
r2.start()
調用threading庫的Thread類
import threading
import time
def test(x):
    print(x)
    time.sleep(2)
if __name__=='__main__':
    t1 = threading.Thread(target=test, args=(1,))  
    t2 = threading.Thread(target=test, args=(2,))
    t1.start()
    t2.start()

守護線程此類線程的特點是,當程序中主線程及所有非守護線程執(zhí)行結束時,未執(zhí)行完畢的守護線程也會隨之消亡(進行死亡狀態(tài)),程序將結束運行。

#守護線程
import threading
import time
def run(n):
    print('task',n)
    time.sleep(1)
    print('3s')
    time.sleep(1)
    print('2s')
    time.sleep(1)
    print('1s')
if __name__ == '__main__': #主線程
    t=threading.Thread(target=run,args=('t1',))
    t.setDaemon(True) #設置子線程為守護線程,守護主線程。主線程結束,子線程也立馬結束。必須在start() 方法調用之前設置
    t.start()
    print('end')

線程鎖

1.互斥鎖

#互斥鎖
import threading
def run():
    global x
    lock.acquire() #申請鎖
    x+=1 
    lock.release() #釋放鎖
if __name__=='__main__':
    x=0
    res=[]
    lock=threading.Lock() #實例化線程鎖
    for i in range(100): #100個線程
        t=threading.Thread(target=run) 
        t.start()
        res.append(t)
    for t in res:
        t.join()    
    print(x) 
2.遞歸鎖

import threading
def func(lock):
    global gl_num
    lock.acquire()
    gl_num += 1
    time.sleep(1)
    print(gl_num)
    lock.release()
if __name__ == '__main__':
    gl_num = 0
    lock = threading.RLock()
    for i in range(10):
       t = threading.Thread(target=func,args=(lock,))
       t.start()

練手:

import threading
import time  #導入時間模塊

#線程一:輸出當前的年月日時分秒
class myThread1(threading.Thread):
    def run(self):
        while (True):
            print(time.asctime(time.localtime(time.time())))#輸出實時時間
            time.sleep(1)
#線程二:name每2秒打印輸出4次結束
class myThread2(threading.Thread):#繼承threading.Thread
    def __init__(self,name):#繼承父類的方法實現繼承threading.Thread       
        super(myThread2, self).__init__()#super方法調用父類
        self.name=name #實例化對象屬性    
    def run(self):#重寫Thread類中的run方法
        for i in range(4):#for循環(huán)打印4次
            print(self.name)          
            time.sleep(2)#打印一次delay兩秒
if __name__ == '__main__':
    #創(chuàng)建線程1和線程2并傳入參數
    x1 = myThread1()
    x2 = myThread2("張三")
    #開啟線程
    x1.start()
    x2.start()

總結

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!

相關文章

  • 簡介Django框架中可使用的各類緩存

    簡介Django框架中可使用的各類緩存

    這篇文章主要介紹了簡介Django框架中可使用的各類緩存,Django是人氣最高的Python web開發(fā)框架,需要的朋友可以參考下
    2015-07-07
  • Python利用matplotlib做圖中圖及次坐標軸的實例

    Python利用matplotlib做圖中圖及次坐標軸的實例

    今天小編就為大家分享一篇Python利用matplotlib做圖中圖及次坐標軸的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python如何實現質數求和

    python如何實現質數求和

    這篇文章主要介紹了python如何實現質數求和,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Python入門案例之找出文件中出現次數最多的10個單詞

    Python入門案例之找出文件中出現次數最多的10個單詞

    這篇文章主要為大家?guī)硪粋€簡單的Python入門案例——找出文件中出現次數最多的10個單詞,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2023-02-02
  • win10 64bit下python NLTK安裝教程

    win10 64bit下python NLTK安裝教程

    這篇文章主要為大家詳細介紹了win10 64bit下python NLTK安裝教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • Python爬取豆瓣數據實現過程解析

    Python爬取豆瓣數據實現過程解析

    這篇文章主要介紹了Python爬取豆瓣數據實現過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • ?Python思維導圖匯總

    ?Python思維導圖匯總

    這篇文章主要給大家分享的是?Python思維導圖匯總,對大家學習或工作或許有一定參考價值,需要的朋友可以參考一下,洗碗給對你有所幫助
    2022-01-01
  • Python方法的延遲加載的示例代碼

    Python方法的延遲加載的示例代碼

    本篇文章主要介紹了Python方法的延遲加載的示例代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • 簡單介紹Python的第三方庫yaml

    簡單介紹Python的第三方庫yaml

    今天給大家?guī)淼氖顷P于Python的相關知識,文章圍繞著Python的第三方庫yaml展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Python標準庫itertools的使用方法

    Python標準庫itertools的使用方法

    本文匯總整理了Python標準庫itertools的使用方法,并提供簡單應用示例;如果還不能滿足你的要求,歡迎加入補充
    2020-01-01

最新評論

辽中县| 谢通门县| 禹州市| 家居| 长乐市| 桃江县| 从化市| 苍南县| 泰和县| 泗洪县| 惠安县| 慈溪市| 新巴尔虎左旗| 科技| 阿图什市| 泰顺县| 柳河县| 兰坪| 阳西县| 新民市| 陇川县| 将乐县| 甘泉县| 浙江省| 余庆县| 大宁县| 通许县| 大姚县| 汤阴县| 大邑县| 元氏县| 高青县| 遵义市| 错那县| 岢岚县| 北安市| 嘉定区| 定陶县| 上蔡县| 涡阳县| 宿州市|