python開發(fā)之thread線程基礎(chǔ)實(shí)例入門
本文實(shí)例講述了python開發(fā)之thread線程基礎(chǔ)。分享給大家供大家參考,具體如下:
說到線程,我們要知道啥是串行,啥是并行程序
舉個(gè)例子:
串行程序,就是一個(gè)一個(gè)的執(zhí)行程序
#python threading import time ''' 每一秒中,輸出:this is a demo! ''' def serial(): '''串行輸出''' time.sleep(1) print('this is a demo!') def main(): for i in range(5): serial() if __name__ == '__main__': main()
運(yùn)行結(jié)果如下:
>>> this is a demo! this is a demo! this is a demo! this is a demo! this is a demo! >>>
并行程序,就是很多個(gè)程序在同一時(shí)間(宏觀)一起執(zhí)行
#python threading import threading import time ''' 并行執(zhí)行,輸出:Good!Good!Good!Good!Good! ''' def parallel(): '''并行輸出''' time.sleep(1) print('Good!') def main(): for i in range(5): t = threading.Thread(target=parallel) t.start() if __name__ == '__main__': main()
當(dāng)然我們通過執(zhí)行程序,可以知道,并行程序要比串行程序執(zhí)行的要快....
我們也可以獲取到當(dāng)前的線程及個(gè)數(shù):
#python threading import threading import time ''' 并行執(zhí)行,輸出: [<Thread(Thread-2, started 3480)>, <Thread(Thread-1, started 660)>, <Thread(SockThread, started daemon 2920)>, <Thread(Thread-3, started 916)>, <Thread(Thread-4, started 3476)>, <_MainThread(MainThread, started 3964)>, <Thread(Thread-5, started 2060)>] 存在的線程數(shù) : 7 Good!Good!Good!Good!Good! ''' def parallel(): '''并行輸出''' time.sleep(1) print('Good!') def main(): for i in range(5): t = threading.Thread(target=parallel) t.start() if __name__ == '__main__': main() print(threading.enumerate()) print('存在的線程數(shù) : %d'%threading.active_count())
運(yùn)行結(jié)果如下:
>>> [<Thread(SockThread, started daemon 15424)>, <Thread(Thread-3, started 15840)>, <Thread(Thread-1, started 10884)>, <Thread(Thread-2, started 14512)>, <Thread(Thread-4, started 13204)>, <_MainThread(MainThread, started 12924)>, <Thread(Thread-5, started 15476)>] 存在的線程數(shù) : 7 >>> Good!Good!Good!Good!Good!
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
python簡單獲取本機(jī)計(jì)算機(jī)名和IP地址的方法
這篇文章主要介紹了python簡單獲取本機(jī)計(jì)算機(jī)名和IP地址的方法,涉及Python中socket模塊的相關(guān)使用技巧,需要的朋友可以參考下2015-06-06Python requests模塊session代碼實(shí)例
這篇文章主要介紹了Python requests模塊session代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04JSON Web Tokens的實(shí)現(xiàn)原理
本文主要介紹了JSON Web Tokens的實(shí)現(xiàn)原理。具有很好的參考價(jià)值,下面跟著小編一起來看下吧2017-04-04Python命令行參數(shù)argv和argparse該如何使用
這篇文章主要介紹了Python命令行參數(shù)argv和argparse該如何使用,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-02-02Python 模擬生成動(dòng)態(tài)產(chǎn)生驗(yàn)證碼圖片的方法
這篇文章主要介紹了Python 模擬生成動(dòng)態(tài)產(chǎn)生驗(yàn)證碼圖片的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02Python DBM模塊輕松使用小型數(shù)據(jù)庫存儲(chǔ)管理數(shù)據(jù)
這篇文章主要介紹了Python DBM模塊輕松使用小型數(shù)據(jù)庫存儲(chǔ)管理數(shù)據(jù),它可以讓你輕松地存儲(chǔ)和管理鍵值對(duì)數(shù)據(jù),可以使用 dbm 模塊來操作 DBM 文件,或者使用 shelve 模塊來存儲(chǔ)任意類型的 Python 對(duì)象2024-01-01