java執行這個腳本並獲取返回值是等待腳本執行完畢再獲取返回的。
我不清楚你是通過什麼方式來執行的。
不過你可以啟動兩個線程,一個線程開始執行腳本,一個線程去獲取輸出。
② python中如何讓一個新建線程執行完後返回當前主線程
傳一個對象參數進新建線程,新建線程執行完之後把當前主線程寫入進對象,其他線程直接使用傳進去的對象就能得到了(新線程執行完之後)
③ Python如何從線程中返回值
import thread
s = 0
def h():
global s
s = '11'
thread.start_new_thread(h,())
print s
④ python的Threading怎麼返回值
1、常見的有寫一個自己的多線程類,寫一個方法返回。
2、可以設置一個全局的隊列返回值。
3、也可以用multiprocessing.pool.ThreadPool 。
⑤ 如何取得createthread調用的線程函數的返回值
函數返回值表示線程成功或失敗。
進程可以通過調用GetExitCodeThread函數獲得用CreateThread函數創建的線程函數的返回值。
用CreateRemoteThread.函數創建的不可以。
這是MSDN上的,你要學會查這些東東。
⑥ python的Threading怎麼返回值
1、常見的有寫一個自己的多線程類,寫一個方法返回。 2、可以設置一個全局的隊列返回值。 3、也可以用multiprocessing.pool.ThreadPool 。
⑦ python的線程如何返回值
在python里線程是不受控的。 java里也是有限受控。 windows里線程本來就不受控。只有進程可以控制。 所以線程啟動後要通過變數來取到返回值。
不過考慮到訪問沖突問題,通常通過事情消息機制,以及queue的方式,把數據傳遞出來。
象wode5130的這種方式。也可以考慮。不過建議試驗後再明確。
python里的線程實際上是微線程。也就是說,它與主進程是由python解釋器通過輪洵執行的。 但是這個微線程同時又是標準的windows線程。這就涉及到python中的GIL,一個全局執行鎖的問題。
所以用global s這種方式是行得通的,因為它們都在同一個變數空間內。
如果有多個線程就不成了。 多個線程都給S賦值。會造成賦值間隙中的空白。不知道是為什麼,不過的確有時候,取不到正確的值。
⑧ python threading模塊,生成多線程之後,怎麼得到線程執行完成後return出的字元串呢
多線程/多進程都是通訊或者回調,而不是直接返回結果。這個很容易理解的,因為如果你用返回結果來給一個變數賦值,你就必須等待這個函數結束,你這個程序就阻塞了,這就失去了多線程/多進程防止阻塞的意義了。
通訊可以是事件驅動或者用線程安全的數據結構來傳遞數據(比如Queue,也可以是消息隊列0mq,rabbitMQ之類),回調就是你一個程序執行完成後調用另外一個函數來處理接下來怎麼做。
⑨ 如何取得線程的返回值
函數返回值表示線程成功或失敗。進程可以通過調用GetExitCodeThread函數獲得用CreateThread函數創建的線程函數的返回值。 用CreateRemoteThread.函數創建的不可以。這是MSDN上的,你要學會查這些東東。