腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(5340)
视频
沙龙
5
回答
在线程程序中,fork (应该是)
信号
处理程序是
安全
的吗?
、
、
、
、
我真的不确定POSIX对fork在存在线程和
信号
的情况下的
安全
性的要求。fork被列为
异步
信号
安全
函数之一,但是如果库代码有可能注册了不是
异步
信号
安全
的pthread_atfork处理程序,这会否定fork的
安全
性吗?基于这个问题,如果在系统库中使用pthread_atfork建议的习惯用法(获取prefork处理程序中的所有
锁
并释放父和子postfork处理程序中的所有
锁
)在系统库中实现“线程<e
浏览 2
提问于2010-12-16
得票数 21
回答已采纳
2
回答
malloc()是不可重入的,但线程
安全
吗?
、
、
、
、
可能重复: 书中说,malloc是不可重入的,因为它操纵全局链接列表数据结构,但是通过使用互斥
锁
使线程
安全
。我对此感到有点困惑:因为它使用互斥线程是线程
安全
的,因此可以同时被多个线程调用,为什么它不是一个重入函数?(如果我们说重入意味着它可以由多个调用方同时调用) 另一个问题是,由于malloc是线程
安全
的,我们能把它放在
信号
处理程序中吗?我认为答案是肯定的,但我不确定,因为根据这本书,它说,只有可重入或
异步
<e
浏览 4
提问于2012-01-15
得票数 11
回答已采纳
1
回答
当我从
信号
处理程序调用非
异步
安全
函数时,它总是不
安全
吗?
、
、
、
我只是想知道是否可以在
信号
处理程序中调用非
异步
安全
函数。 SUSv3注意到,表21-1 (
异步
安全
函数列表)中没有列出的所有函数对于
信号
来说都是不
安全
的,但指出只有当调用
信号
处理程序中断不
安全
函数的执行时,函数才是不
浏览 5
提问于2015-08-24
得票数 6
回答已采纳
1
回答
寻找关于死锁场景的指导
、
、
有没有更好的方法来处理
信号
处理程序中的日志记录(带有时间戳)?
浏览 1
提问于2011-12-07
得票数 0
回答已采纳
1
回答
在C++中,我可以使用多线程工具与我的主程序同步UNIX
信号
吗?
、
、
、
、
使用sigaction设置的
信号
处理程序是否在自己的线程中运行?我是否可以使用P螺纹工具来将我的
信号
处理程序与我的主程序同步,比如线程互斥体?我可以使用C++11工具如mutex和atomic吗?对不起,如果这个问题有点笼统,但是我真的很困惑
信号
和线程之间的关系。 我正在研究
Linux
,但这个问题一般适用于UNIX。
浏览 7
提问于2015-05-23
得票数 2
回答已采纳
4
回答
如何在
linux
上实现线程
安全
的定时器?
、
、
正如我们所知,在
信号
处理程序中做事情真的很糟糕,因为它们在类似中断的上下文中运行。各种
锁
(包括malloc()堆
锁
!)在调用
信号
处理程序时保持。所以我想在不使用
信号
机制的情况下实现一个线程
安全
计时器。对不起,实际上,我并不期待关于线程
安全
的答案,而是关于在Unix或
Linux
上实现线程
安全
的定时器的答案。
浏览 6
提问于2009-03-23
得票数 4
回答已采纳
1
回答
如果pthread_mutex_wait上阻塞的进程发出
信号
(os
信号
,而不是pthread_mutex_unlock),会发生什么情况
、
、
、
、
那么,如果一个进程被pthread_mutex_lock阻塞,并且您发送一个
信号
来唤醒它,那么在
信号
处理程序被执行之后,会发生什么呢?有什么机制可以避免这种虚假的唤醒吗?
浏览 0
提问于2020-03-19
得票数 0
4
回答
linux
信号
处理程序中的malloc会导致死锁。
、
、
、
首先,对不起,在
信号
处理程序中调用malloc :).I也明白,我们不应该在
信号
处理程序中执行任何耗时的任务/这种讨厌的事情。 但我很想知道它坠毁的原因?
浏览 5
提问于2016-10-14
得票数 6
回答已采纳
1
回答
如何绕过libc直接调用fork()?
、
、
我安装了一个SIGSEV和SIGABRT
信号
处理程序,它派生一个子进程: 1.使用SIGSTOP停止其父进程。2.在父进程上调用gdb以收集崩溃诊断信息。现在,我的
信号
处理程序有可能冻结,因为fork()试图分配内存,这反过来可能会抢占一个已经锁定的互斥
锁
。以下代码可以在
Linux
上运行,但似乎不能在OS X上运行。它总是返回子PID,而不是0,或者它应该这样做吗?我也不确定我是否正确地捕获了返回值,因为定义是int syscall(...)pid = syscall(SYS_fork); 我的应用可以在很多平台上运行,包
浏览 3
提问于2012-07-03
得票数 2
1
回答
在
Linux
上有没有一种
异步
信号
安全
的方法来读取目录列表?
、
、
没有在它的
异步
信号
安全
函数列表中列出opendir、readdir、closedir等。 有没有一种从
信号
处理程序读取目录列表的
安全
方法?或者,也许在
Linux
上,某些系统调用是
异步
信号
安全
的,即使SUSv4 / POSIX不需要它也可以使用?
浏览 2
提问于2013-08-29
得票数 4
1
回答
我应该在清理处理程序中解锁互斥对象吗?
、
、
、
、
但后来有一段写道: 阿。因此,通过接收
浏览 3
提问于2016-02-14
得票数 2
3
回答
多线程程序中
异步
信号
的处理
、
、
、
Linux
编程接口书提到了一种在多线程程序中处理
异步
信号
的方法: 创建一个使用sigwaitinfo()、sigtimedwait()或sigwait()接收传入
信号
的专用线程。这种方法的优点是同步接收
异步
产生的
信号
。由于接受传入
信号
,专用
浏览 2
提问于2011-06-03
得票数 13
回答已采纳
2
回答
linux
允许从
信号
处理程序进行任何系统调用吗?
、
、
我的理解是,通常情况下,如果从
信号
处理程序调用非
异步
信号
安全
函数,行为是未定义的,但我听说
linux
允许您
安全
地调用任何系统调用。这是真的吗?此外,SIGSEGV处理程序的唯一可移植行为是中止或退出,但我知道如果您返回,
linux
实际上将恢复执行,对吗?
浏览 4
提问于2012-07-27
得票数 21
回答已采纳
1
回答
Linux
下的‘`nanosleep()’
异步
信号
安全
、
、
、
、
我需要使用用户空间线程库中的nanosleep函数来实现大致所需的等待,因为它可以在
异步
信号
中断的情况下节省剩余时间。因此,如果nanosleep调用被线程切换中断,并从另一个线程或
信号
处理程序再次调用,我想知道这种情况是否会导致问题。显然,as it is not listed here的nanosleep函数并不是
异步
信号
安全
的;然而,sleep(3)被认为是
异步
信号
安全
的。另一方面,sleep(3) seems to be im
浏览 43
提问于2020-04-04
得票数 2
2
回答
如何使功能
异步
信号
安全
?
、
、
、
、
fprintf(stderr, "%s\n", piderr); }}根据上述链接: 有办法使flock
异步
浏览 3
提问于2013-06-06
得票数 8
回答已采纳
1
回答
sem_post、
信号
处理程序和未定义的行为
、
、
、
、
在
信号
处理程序中使用sem_post()是否依赖于未定义的行为?/* * http://man7.org/
linux
/man-pages-1) { _exit(EXIT_FAILURE);}
浏览 1
提问于2018-02-02
得票数 5
回答已采纳
1
回答
*_r的UNIX调用是可重入的(
异步
信号
安全
)、线程
安全
还是两者都是?
、
、
、
、
在可重入和线程
安全
函数上有区别,我不知道
Linux
函数以_r结尾是线程
安全
的、可重入的(我指
异步
信号
安全
)还是两者兼而有之,
浏览 1
提问于2013-08-12
得票数 3
回答已采纳
1
回答
pthread_kill
异步
信号
在
Linux
上
安全
吗?
、
、
OpenGroup Unix规范 pthread_kill()是
异步
信号
安全
的.但是
Linux
并没有在相关部分列出这个函数。 那么,在
Linux
上的
信号
处理程序中调用pthread_kill
安全
吗?我知道它是用tgkill()实现的(这是
安全
的.但这并不能自动保证pthread_kill()的
安全
性)。不幸的是,当实时
信号
队列已满时,
Linux
将恢复到向整个进程提供SIGIO .为了纠正这个SIG
浏览 2
提问于2018-07-23
得票数 4
回答已采纳
2
回答
错误使用pthread,用于等待套接字的响应
、
、
我的主要函数如下:{ pthread_t thread_serv; //cl[0].content = retrieve_info(); //PORT = cl[0].content.port; if
浏览 1
提问于2020-04-20
得票数 0
1
回答
与系统功能有关的问题
、
在下面的代码中,当系统函数被执行(在
Linux
中并使用g++编译)时,它将发送SIGCHLD
信号
到处理(调用它的),而这在Solaris代码中是不会发生的。我的意思是,如果我在Solaris中运行相同的代码,系统函数就不会向调用它的进程发送任何
信号
。因此,我在
Linux
中的进程挂起。为什么系统功能在Solaris中没有发送任何
信号
? 实际上,在我的实际应用程序中(其中单个
信号
处理程序用于处理大约四个
信号
),其他一些进程
浏览 1
提问于2012-08-17
得票数 1
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
详解Linux多线程中的互斥锁、读写锁、自旋锁、条件变量、信号量
MySQL 引擎特性:InnoDB IO 子系统
高性能-Nginx多进程高并发、低时延、高可靠机制在百万级缓存(redis、memcache)代理中间件中的应用
一文读懂高性能网络编程中的I/O模型
java高并发编程系列四:线程间通讯
热门
标签
更多标签
云服务器
ICP备案
对象存储
实时音视频
即时通信 IM
活动推荐
运营活动
广告
关闭
领券