2017-04-23 25 views
1

戻りませんPythonは、私は以下のように定義された2つの機能を持っているバック

result = join_group_thread(client, link) 
:私はこのような join_group_thread呼び出す main()
def join_group(client, params, queue): 
    try: 
     response = client.invoke(ImportChatInviteRequest(params)) 
    except Exception as e: 
     response = str(e).replace("'","") 
    queue.put(response) 

thread_1.join(10)に10秒を設定したので、result = join_group_thread(client, link)には最大で10秒かかることが予想されますが、時には永遠にハングすることがあります。

説明はありますか? the docsから

答えて

1

Queue.get(ブロック= Trueの場合、タイムアウト=なし)

キューからアイテムを取り除き、それを返します。オプションのargsブロックがtrueでタイムアウトがNone(デフォルト)の場合は、必要に応じて の項目が利用可能になるまでブロックします。

つまり、thread.joinのタイムアウトは、結果が利用可能になるまで待機するため、無意味です。 thread_queue.get(block=False)またはthread_queue.get_nowait()を使用してください。

関連する問題