读书人

请问一个关于多线程的有关问题

发布时间: 2012-03-12 12:45:33 作者: rapoo

请教一个关于多线程的问题啊
一个方法里,new了一个线程,然后启动这个线程,然后返回一个数据。
请问这个数据是在那个线程执行完毕之后返回吗?
还是不等待那个线程执行完毕,就返回呢?

Java code
                Thread waiter = new Thread(new Waiter(fs.getCountDownLatch()));                waiter.start();                return NovFileQueue.getInstance().getPath(fileInfo.getFileId());


[解决办法]
新开的线程就是异步的,start方法执行后,会马上执行其下面的代码。而start对应的线程也开始执行。两者是并行的。
[解决办法]
是有可能的

探讨

引用:

新开的线程就是异步的,start方法执行后,会马上执行其下面的代码。而start对应的线程也开始执行。两者是并行的。
也就是说,有可能先返回数据结果,再执行start的线程了?

[解决办法]
是的,两边谁快谁慢都是不一定的。
[解决办法]
对,有可能。
[解决办法]
return之前waiter.join

不过话说话来,你另起这个线程的意义不大了。。
[解决办法]
额...那就不要用线程...
既然是一个顺序执行任务,为什么你要去开一个线程那?
[解决办法]
如果要从线程中返回结果 可以 使用FutureTask
[解决办法]
开一个新线程目的就是要实现异步,你如果没有异步的要求就不要新开线程了。如果有异步的要求同时在特殊的场合需要等待,那么线程类里面肯定有等待线程结束的方法。我也没过。调用就行了。
[解决办法]
好像就新开线程执行了吧

读书人网 >J2SE开发

热点推荐