2016-02-10 50 views
1

假设我有一个调用web服务的线程(1)。结果这个线程进入阻塞状态,其他线程(2)开始运行。当Web服务返回(并且线程2仍在运行)时会发生什么?线程1是否会立即开始运行?我可以控制这个吗?调用webservice的线程 - 我如何控制线程状态?

+0

线程通常会为您提供完全并发性,这意味着每个线程都独立运行。当Web服务返回时,该线程将继续其工作。你想要什么控制? –

+0

这是我的问题 - 我可以确定线程会立即继续Web服务返回时吗?如果在这一点上还有其他正在运行的线程呢?假设我只有一个CPU – user5157427

+0

难道你不知道线程调度是什么?多任务? –

回答

0

无论你正在使用的Web服务库会告诉你。一个好的库通常会提供这两个选项,最后的区别是与Async具有相同的方法名称,例如,

get("www.google.com");  // Thread stops here, continues when request is done 
getAsync("www.google.com"); // Thread continues running, you have to check whether the request is done when you want the result 
0

您不必控制主题。线程会照顾好自己,并会独立运行。您可以创建一个接口并向正在运行的线程添加一个侦听器,以便在主线程完成其工作时通知主线程。