线程使用注意事项

1.主线程退出其他线程不退出,主线程应调用pthread_exit;

2.避免僵尸线程:pthread_join、pthread_detach、pthread_create指定分离属性。被join线程可能在join函数返回前就释放完自己的所有内存资源,所以不应当返回被回收线程栈中的值;(因为此时释放的栈空间又可能被重新分配出去,此时得到的返回值没有意义)

3.malloc和mmap申请的内存可以被其他线程释放;

4.应避免在多线程模型中调用fork。一个进程中的某一个线程调用fork函数后也会生成一个子进程,在子进程中只有调用fork的线程存在,其他线程在子进程中均pthread_exit,即子进程只是继承了父进程中调用fork函数的那个线程的资源,遵从读时共享、写时复制原则;(注意尽量避免这样使用,如果一定要使用,建议线程fork后产生的子进程马上exec

5.信号的复杂语义很难和多线程共存,应避免在多线程引入信号机制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值