成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

對Python線程實體說明介紹

開發 后端
Python線程和進程的區別在于,子進程和父進程有不同的代碼和數據空間,而多個線程則共享數據空間,每個線程有自己的執行堆棧和程序計數器為其執行上下文。

Python線程是進程中的一個實體,是被系統獨立調度和分派的基本單位,線程自己不擁有系統資源,只擁有一點在運行中必不可少的資源,希望大家能夠從中得到自己想要的知識。

我們在做軟件開發的時候很多要用到多線程技術。例如如果做一個下載軟件象flashget就要用到、象在線視頻工具realplayer也要用到因為要同時下載media stream還要播放。其實例子是很多的。

線程相對進程來說是“輕量級”的,操作系統用較少的資源創建和管理線程。程序中的線程在相同的內存空間中執行,并共享許多相同的資源。在python中如何創建一個線程對象:如果你要創建一個線程對象,很簡單,只要你的類繼承threading.Thread,然后在__init__里首先調用threading.Thread的__init__方法即可:

  1. t1 = mythread('t1')  
  2. print t1.getName(),t1.isDaemon()  
  3. t1.setDaemon(True)  
  4. print t1.getName(),t1.isDaemon()  
  5. t1.start()  
  6. print 'main thread exit' 

這才僅僅是個空線程,我可不是要他拉空車的,他可得給我干點實在活。很簡單,重寫類的run()方法即可,把你要在線程執行時做的事情都放到里面。以上代碼我們讓這個線程在執行之后每隔1秒輸出一次信息到屏幕,10次后結束getName()是threading.Thread類的一個方法,用來獲得這個線程對象的name。

還有一個方法setName()當然就是來設置這個線程對象的name的了。如果要創建一個線程,首先就要先創建一個線程對象。一個線程對象被創建后,他就處于“born”(誕生狀態),如何讓這個線程對象開始運行呢?只要調用線程對象的start()方法即可:

奇怪嗎?不是已經start了嗎?為什么不稱為“running”狀態呢?其實是有原因的。因為我們的計算機一般是不具有真正并行處理能力的。我們所謂的多線程只是把時間分成片段,然后隔一個時間段就讓一個線程執行一下,然后進入“sleeping ”狀態,然后喚醒另一個在“sleeping”的線程。

如此循環runnable->sleeping->runnable... ,只是因為計算機執行速度很快,而時間片段間隔很小,我們感受不到,以為是同時進行的。所以說一個線程在start了之后只是處在了可以運行的狀態,他什么時候運行還是由系統來進行調度的。#t#

那一個線程什么時候會Python線程呢?一般來說當線程對象的run方法執行結束或者在執行中拋出異常的話,那么這個線程就會結束了。系統會自動對“dead”狀態線程進行清理。如果一個線程t1在執行的過程中需要等待另一個線程t2執行結束后才能運行的話那就可以在t1在調用t2的join()方法。

這樣t1在執行到Python線程語句后就會等待t2結束后才會繼續運行,如果一個進程的主線程運行完畢而子線程還在執行的話,那么進程就不會退出,直到所有子線程結束為止,如何讓主線程結束的時候其他子線程也乖乖的跟老大撤退呢?

那就要把那些不聽話的人設置為聽話的小弟,使用線程對象的setDaemon()方法,參數為bool型。True的話就代表你要聽話,我老大(主線程)扯呼,你也要跟著撤,不能拖后腿。如果是False的話就不用那么聽話了,老大允許你們將在外軍命有所不受的。需要注意的是setDaemon()方法必須在線程對象沒有調用start()方法之前調用,否則沒效果。

【編輯推薦】

  1. 如何使Python嵌入C++應用程序?
  2. 深入探討Ruby與Python語法比較
  3. Python學習資料介紹分享
  4. Python學習經驗談:版本、IDE選擇及編碼解決方案
  5. 淺析Python的GIL和線程安全
責任編輯:chenqingxiang 來源: 計世網
相關推薦

2010-03-01 13:13:02

Python應用線程

2010-02-02 13:28:46

Python變量

2010-02-22 11:14:43

Python編寫

2010-02-24 16:44:58

Python 函數

2010-02-26 10:07:55

Python編程語言

2010-02-26 13:56:08

Python RSS

2010-02-26 09:42:52

Python線程池

2009-12-08 16:09:02

WCF消息

2009-12-21 10:01:05

Oracle技術

2010-01-25 18:19:17

C++特性

2010-01-25 18:19:17

C++特性

2010-01-25 18:19:17

C++特性

2010-01-14 13:39:45

Visual C++優

2009-12-14 17:44:39

Visual Stud

2010-01-15 19:34:25

C++設計

2010-01-05 13:29:50

JSON對象

2010-02-02 14:54:28

Python語法

2010-02-03 17:37:30

Python語法

2010-01-28 14:11:43

C++迭代器

2010-01-05 10:47:05

command對象
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费黄色录像片 | 日本大片在线播放 | 亚洲久久久 | 狠狠亚洲 | 在线观看国产视频 | 9色网站| 欧美日韩一区二区三区视频 | 九一在线 | 天堂在线网 | 国产午夜精品理论片a大结局 | 一区二区三区欧美在线 | 天天操人人干 | 日韩欧美三级电影在线观看 | 狠狠干影院 | 女人av | 国产1区2区3区 | 日日夜夜精品视频 | 日韩一区二区三区精品 | 欧美激情一区二区三级高清视频 | 国产精品99久久久久久动医院 | 看羞羞视频免费 | 欧美成人免费在线 | 日韩在线看片 | 色永久 | 懂色av一区二区三区在线播放 | 国产1区 | 国内精品久久精品 | 欧美在线a| 久久99精品视频 | 自拍偷拍中文字幕 | 日韩精品成人 | 中国一级特黄真人毛片免费观看 | 欧美成人久久 | 久久亚洲国产精品日日av夜夜 | 亚洲欧美一区二区三区视频 | 99精品99 | 午夜看片| 国产成人免费一区二区60岁 | 天天看夜夜 | 久久精品国产免费 | 亚洲综合中文字幕在线观看 |