私は非同期プログラムを実行している、と私は起動するすべてのスレッドが、私はそれが機能を完了しなかった場合、それがちょうど意志、タイムアウトを持つようにそれをマルチスレッド - のpython 2.7
をしたいと思います今、私は新しいスレッドを開始するに保つためにメインスレッドをしたいが、そのスレッドが勝ったので、私はまた、すべてのスレッドがそれにタイムアウトを持ちたい停止し、自分自身を殺す(またはいくつかの他のスレッドがそれを殺す)
func(my_item, num1, num2, num3, timeout):
calc = num1+num2
# something that takes long time(on my_item)
for item in my_list:
if item.bool:
new_thread = threading.Thread(target=func, (item, 1, 2, 3, item.timeout))
new_thread.start()
永遠に続かない。
私がいないUNIXのウィンドウを使用していますので、私はSINGLRM
サンキュー実行することはできません!
それが問題です。なぜなら、私は自分のfuncの中でcmdコマンドを実行するサブプロセスを実行しており、それは長い時間を要するからです。時間内にサブプロキシを制限することはできますか? – Mumfordwiz
あなたのPythonコードはコマンドラインから別のプログラムを実行していますか? – J2C
これはあなたを助けるかもしれません:http://stackoverflow.com/questions/16866602/kill-a-running-subprocess-call – J2C