我有一个调用Runtime.exec
的代码,它返回一个进程。
现在,如果该过程尚未完成,则从输入流中读取数据是没有意义的。
所以我添加了Process.waitFor
。
调用线程(进程/活动方法)会睡眠吗? 或者它会消耗cpu。
答案 0 :(得分:0)
如果waitfor
被正确实现,它不应该消耗任何周期,因为它将使用一个阻塞的系统调用,直到该过程完成。
答案 1 :(得分:0)
调用线程(进程/活动方法)会睡眠吗?或者它会消耗cpu。
线程调度程序将挂起调用Process.waitFor()
的线程,直到进程退出。
不会消耗CPU。 (或者为了严格准确,线程本身不会消耗CPU。调度程序可能在需要“唤醒”线程时消耗少量CPU,理论上可以要以其他方式使用的CPU ......取决于线程调度程序和操作系统实现。)
在waitfor返回之前,我的活动是否也会暂停?
没有。调用waitFor
的线程被阻塞/“放入睡眠”。假设您的活动有其他线程,它们不会直接受此影响。
因为服务和活动是同一个android进程的一部分。
这不相关。它是一个“睡眠”的单个线程......而不是整个活动或服务。