【发布时间】:2017-07-29 10:49:15
【问题描述】:
我正在实现一个采用第三方插件的复杂应用程序,我想在子进程中运行插件代码以进行隔离。父进程需要是多线程的,但我读过fork may be unsafe in multithreaded processes,特别是如果你不立即调用execve,还有pthread_atfork is not a complete solution。
其他复杂的应用程序对此做了什么?我知道 Chrome 同时使用子进程和多线程,所以它一定是可能的。
【问题讨论】:
-
你知道
select()/poll()吗?你在用吗? -
@Olaf 我认为这个问题被更恰当地标记为 POSIX 和 既不是 C 也不是 C++。它是关于两个操作系统功能交互方式的详细信息,适用于任何基于相同原语构建的编程语言。
-
@zwol 也许吧。我认为不清楚 OP 具体问了什么。
-
@Olaf 我刚刚开始使用这些东西,我主要使用 C++。但是 fork() 和 dlopen() 是系统调用,这就是我添加 C 标记的原因,
-
@IharobAlAsimi 我不知道 select() 和 poll()。我会检查这些。谢谢!
标签: multithreading fork posix