【发布时间】:2011-06-23 02:31:45
【问题描述】:
所以我有一个使用线程的应用程序。现在,当程序第一次启动时,我希望它在它自己后台之前通过设置数据库连接和诸如此类的东西,以便启动程序的任何人/任何人都可以知道启动是否有错误。
我环顾四周,发现一些资源说“不要混合使用 fork 和线程”,而其他人则说在 linux 中的 fork 只会复制主线程而不会影响其他线程。
在后者的情况下(它只是复制主线程),那么线程如何访问文件级(全局)变量?线程是否无法访问分叉进程地址空间中的变量?
最终目标是在创建线程后让应用程序后台运行。如果这是不可能的,我可以在创建线程之前放叉,只是想尽可能晚。
注意:在 fork 时,线程将执行 sleep() 循环,直到主线程将数据放入共享变量以供它们处理。所以如果睡眠被打断,他们不会受到伤害。
【问题讨论】:
标签: c linux multithreading pthreads fork