Process.waitfor会将服务/活动置于睡眠状态还是消耗cpu?

时间:2013-06-15 06:25:58

标签: java android

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

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

2 个答案:

答案 0 :(得分:0)

如果waitfor被正确实现,它不应该消耗任何周期,因为它将使用一个阻塞的系统调用,直到该过程完成。

答案 1 :(得分:0)

  

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

线程调度程序将挂起调用Process.waitFor()的线程,直到进程退出。

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

  

在waitfor返回之前,我的活动是否也会暂停?

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

  

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

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