2016 - 2024

感恩一路有你

java多线程编程实例 学习c 多线程编程主要用pthread还是c 11中的thread类?

浏览量:2734 时间:2021-03-15 19:14:39 作者:admin

学习c 多线程编程主要用pthread还是c 11中的thread类?

主要使用pthread类

1。创建一个线程

类似于pthread的uuCreate函数,前提是需要引入相应的头文件

#include<pthread。H>

2。对于进入线程的回调函数,通常需要在回调函数中写入死循环以进行某些数据处理,等等

void t_u2;callback()]{

]while(true)

{]}

]3。由于线程将访问相同的数据段或内存,因此通常需要添加一个互锁以防止访问相同的数据段

pthreadmutexut mulock

pthreadmutexuuinit(&mulock,NULL)

pthreadmutexulock(&mulock)

pthreadmutexuunlock(&mulock);

4。死循环将导致崩溃,因此您需要在死循环中添加一个块,

pthreaduucondut mucond

pthreaduconduuinit(&mucond,null)

阻塞挂起时调用:

pthreaduconduwait(&mucond,&muo)阻塞唤醒时调用:

pthreaducondsingnal(&muo)这一点毫无疑问,因为线程锁定是资源密集型的

!那么,如何避免锁的性能下降呢?

1、从业务上避免大量锁结构

!2. 使用ThreadLocal,可以保证每个线程中的数据不会互相污染

!3. 如果读多写少,请使用读写锁

!4. 自旋锁将挑战CPU,尽管它是一个线程时间很少的锁

!5. 锁的粒度应该尽可能小:可以在方法中的锁不应该占用整个方法

java多线程编程实例 pthread实现原理 linux网络编程和多线程编程

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。