Chinaunix

标题: sleep是否线程安全 [打印本页]

作者: bandaotidejia    时间: 2014-12-04 13:56
标题: sleep是否线程安全
老生常谈的问题,一直没有定论
作者: codechurch    时间: 2014-12-04 16:24
当然安全。
作者: folklore    时间: 2014-12-04 19:24
Syscall API一般认为都线程安全

作者: bandaotidejia    时间: 2014-12-06 17:49
但为什么有人用select函数做sleep
作者: wangspace    时间: 2014-12-06 18:01
回复 4# bandaotidejia
分辨率不同

   
作者: zsszss0000    时间: 2014-12-06 20:40
bandaotidejia 发表于 2014-12-06 17:49:32
但为什么有人用select函数做sleep

早期有人这么做,我觉得习惯而已
作者: codechurch    时间: 2014-12-07 23:25
传说select精度高,因为参数里有微妙级变量,实际上取决于内核对select的实现。

但sleep的精度是非常低的,这是一件可以肯定的事情。


作者: myworkstation    时间: 2014-12-08 15:03
回复 1# bandaotidejia


    http://www.gnu.org/software/libc/manual/html_node/Sleeping.html

    sleep不是线程安全的,而nanosleep是线程安全的。
作者: cjaizss    时间: 2014-12-08 15:18
folklore 发表于 2014-12-04 19:24
Syscall API一般认为都线程安全

妇科老人又忽悠人,sleep不是系统调用
作者: hejianet    时间: 2014-12-09 09:30
APUE上有一章专门讲这个,还有线程非安全的函数列表
作者: bandaotidejia    时间: 2014-12-14 19:23
又没定论了...
作者: folklore    时间: 2014-12-14 22:09
回复 9# cjaizss


    介个, 不是系统调用, 用户程序可怎么实现这个啊。
作者: cjaizss    时间: 2014-12-16 09:03
folklore 发表于 2014-12-14 22:09
回复 9# cjaizss

一般都是使用SIGALARM来搭
作者: cyk626    时间: 2014-12-17 09:07
第一次了解这么深入.学习了!
作者: bandaotidejia    时间: 2014-12-17 10:23
可惜没有定论
作者: ilex    时间: 2014-12-17 10:40
以前一直以为sleep不准,后来发现sleep有返回值。。。。。。

另外:线程里面调用sleep,会被某个信号量干扰(具体记不清了)。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2