当前位置: 技术问答>linux和unix
sleep是进程域还是线程域的?
来源: 互联网 发布时间:2016-06-30
本文导语: Q:linux环境下,一个多线程的程序中,一个线程调用sleep函数,会使整个进程挂起,其他的线程都挂起吗?还是仅存在这种风险。 我刚刚自己试过,在其他的线程里sleep,不会影响其他的线程正常工作啊!也就是说sle...
Q:linux环境下,一个多线程的程序中,一个线程调用sleep函数,会使整个进程挂起,其他的线程都挂起吗?还是仅存在这种风险。
我刚刚自己试过,在其他的线程里sleep,不会影响其他的线程正常工作啊!也就是说sleep不是进程域的啊!
为甚麽大家都说sleep会导致整个进程挂起呢?
我刚刚自己试过,在其他的线程里sleep,不会影响其他的线程正常工作啊!也就是说sleep不是进程域的啊!
为甚麽大家都说sleep会导致整个进程挂起呢?
|
Linux 本身没有线程的概念, 是引用了 pthread 库来实现线程机制的。
其实只是在进程间共享了数据而已。
所以 sleep 是挂起整个进程还是刮起线程 取决于 pthread 库的实现。
不同的系统上表现会有所不同,所以建议不要使用 sleep,而是用 select 自己实现一个 sleep。
其实只是在进程间共享了数据而已。
所以 sleep 是挂起整个进程还是刮起线程 取决于 pthread 库的实现。
不同的系统上表现会有所不同,所以建议不要使用 sleep,而是用 select 自己实现一个 sleep。
|
我刚才做过测试,如果使用sleep函数,应该是会使整个进程都挂起,等休眠后在运行,
我创建了两个子线程,加上主线程就三个了,测试结果就是挂起整个进程
我创建了两个子线程,加上主线程就三个了,测试结果就是挂起整个进程