3

我有一个调用Runtime.exec它返回一个进程的代码。现在,如果该过程尚未完成从输入流中读取数据将没有意义。所以我加了一个Process.waitFor.

调用线程(进程/活动方法)会休眠吗?或者它会消耗cpu。

4

2 回答 2

0

如果waitfor实施得当,它不应该消耗任何周期,因为它将使用一个系统调用,该调用会阻塞直到进程完成。

于 2013-06-15T06:29:47.270 回答
0

调用线程(进程/活动方法)会休眠吗?或者它会消耗cpu。

线程调度程序将暂停线程调用Process.waitFor(),直到进程退出。

不会消耗 CPU。(或者严格来说,线程本身不会消耗CPU。调度器在需要“唤醒”线程的时候可能会消耗少量的CPU,理论上有可能以其他方式消耗CPU ...取决于线程调度程序和操作系统实现。)

我的活动是否也会暂停,直到等待返回?

不,只是被调用的线程waitFor被阻塞/“进入睡眠状态”。假设您的活动有其他线程,它们不会直接受此影响。

因为服务和活动是同一个安卓进程的一部分。

那不相关。它是一个“休眠”的线程......而不是整个活动或服务。

于 2013-06-15T07:02:48.053 回答