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上的,你要学会查这些东东。