以上一節**為例,如何檢視執行的執行緒數,需要呼叫threading模組裡面的enumerate方法,返回乙個執行緒數列表:
import我在唱歌....threading
import
time
"""以上一章的**為例,如何檢視有多少個執行緒在執行
"""def
sing():
"""唱歌5秒鐘
"""for i in range(3):
print('
----------------')
print('
我在唱歌....')
time.sleep(1)
defdance():
for i in range(5):
print('
我在跳舞....')
print('
----------------')
time.sleep(1)
defmain():
t = threading.thread(target=sing)
t2 = threading.thread(target=dance)
t.start()
t2.start()
#迴圈列印正在執行的執行緒數,呼叫threading模組中的enumerate方法返回乙個列表,裡面的元素就是執行的執行緒,列印出元素個數就是執行緒數
while
true:
nums =len(threading.enumerate())
(threading.enumerate())
#當沒有執行緒時,就退出
if nums <= 1:
break
time.sleep(1)
if__name__ == '
__main__':
main()
執行結果如下:
我在跳舞....
[<_mainthread started>, , ]
[<_mainthread started>, , ]
我在跳舞....
我在唱歌....
[<_mainthread started>, , ]
我在唱歌....
我在跳舞....
[<_mainthread started>, , ]
我在跳舞....
[<_mainthread started>, ]
我在跳舞....
[<_mainthread started>, ]
[<_mainthread started>]
解釋如下圖:![](https://pic.w3help.cc/57c/12cb88d5f11bb5ece893c7feead77.jpeg)
C 多執行緒多少個執行緒算多?
程式一啟動就建立了60個執行緒,太多了,應該控制一下。也有同學提出不同意見,說執行緒多不是問題,別把它當成指標,盯住記憶體 cpu才是正經。使用多執行緒,為的是提高執行效率 那麼,是不是執行緒越多越好呢?哪種實現方案更好呢?別急!執行緒在建立和銷毀時的開銷 windows的做法是,把cpu時間切成小...
多執行緒,到底該設定多少個執行緒?
不好了,線上伺服器超時嚴重,請求非常慢,好像報連線數too many了,怎麼辦?小夥伴們在反饋。一般我們的技術老大的處理方式,把連線數和執行緒池調大點,重啟,再觀察。往往這個方式是應急措施,治標不治本,因為不知道問題的原因。有個嚴重誤區,以為執行緒池設定太小了,調大點請求就會快了。今天就帶著小夥伴們...
多執行緒,到底該設定多少個執行緒?
不好了,線上伺服器超時嚴重,請求非常慢,好像報連線數too many了,怎麼辦?小夥伴們在反饋。一般我們的技術老大的處理方式,把連線數和執行緒池調大點,重啟,再觀察。往往這個方式是應急措施,治標不治本,因為不知道問題的原因。有個嚴重誤區,以為執行緒池設定太小了,調大點請求就會快了。今天就帶著小夥伴們...