线程不能被子进程继承
生活随笔
收集整理的這篇文章主要介紹了
线程不能被子进程继承
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
寫一個并行服務器程序發現總是不能成功,調了很久才發現這個問題,
最后把fork()放在創建thread前面就把問題解決了,mark
man 一下fork 中有一段
The??child??process??is??created?with?a?single?thread?—?the?one?that
called?fork().??The?entire?virtual?address?space?of??the??parent??is
replicated??in?the?child,?including?the?states?of?mutexes,?condition
variables,?and?other?pthreads?objects;?the?use?of??pthread_atfork(3)
may?be?helpful?for?dealing?with?problems?that?this?can?cause.
子進程由調用fork()的線程創建,并且只復制這個線程到子進程,并不復制fork()以外的線程.
這個模型在<<sun多線程編程指南>>中稱為Fork-one模型,這個模型有安全問題
,在<<sun多線程編程指南>>有詳細的解決方法。
轉載于:https://www.cnblogs.com/joe2k8/archive/2009/06/10/1500510.html
總結
以上是生活随笔為你收集整理的线程不能被子进程继承的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 八大营养补脑食品
- 下一篇: 多个project[项目]共享sessi