查看KeyboardInterrupt以退出多線程腳本後,我想知道是否可以使用鍵盤上的向上和向下鍵來增加/減少正在使用的線程數量?這將希望以與KeyboardInterrupt相同的方式發生,以便隨時可能發生。是這樣的可能嗎?還是有另一種方法會更適合這個?如何通過使用特定鍵的鍵盤中斷來更改python腳本中的對象?
def do_something(input_file, threads):
concurrent = threads
l = read_csv(input_file)
for i in range(concurrent):
t = Thread(target=create_accounts)
t.daemon = True
t.start()
try:
for account in l:
q.put(account)
q.join()
except KeyboardInterrupt:
sys.exit(1)
if __name__ == '__main__':
threads = 1
q = Queue(threads * 2)
do_something('test.csv', threads)
想要知道在最底層是多麼有趣,[這裏](http://pastebin.com/hKsyp3Vq)是一個簡單的程序(Python 3.4,僅限於Unix),可以讀取您的字符直到你打回來,然後顯示你按下的向上和向下箭頭。如果你認爲這很可怕,那麼這就是爲什麼你想要一個更高級別的包裝。 :) – abarnert
你會推薦什麼乾淨的方式來使用主線程等待鍵盤輸入?主要希望它能夠輸入一些東西來增加線程的數量,但我覺得這可能對我有任何多線程應用程序有用。你的迴應已經達到了我的好奇心。謝謝(你的)信息。 – Jeff
@Jeff:你需要跨平臺嗎?因爲根據我的經驗,與跨平臺的很好的平臺相比,有更多的純Windows和純Unix控制檯輸入庫。但是我不知道現在的藝術狀況。你可能不得不自己挖掘PyPI。 – abarnert