
Linux多线程
文章平均质量分 83
Legendary_life
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
线程同步
线程同步 互斥量:从本质上是一把锁,在访问共享资源前对互斥量加锁,在访问完后解锁, 对互斥量加锁后任何其他试图再次对其加锁都会被阻塞,知道当前线程 对互斥量解锁。 互斥量初始化 1)静态初始化 将互斥量设置为PTHREAD_MUTEX_INITIALIZER 或者调用怕pthread_mutex_init函数 2)动态初始化 #include int pth原创 2015-08-10 16:15:52 · 444 阅读 · 0 评论 -
线程私有数据实现的原理
在维护每个线程的私有数据的时候,我们可能会想到分配一个保存线程数据的数组,用线程的ID作为数组的索引来实现访问,但是有一个问题是系统生成的线程ID不能保证是一个小而连续的整数,并且用数组实现的时候由于其他线程也可以访问其数组中的数据,这样会引起数据混乱。这时候我们可以借助线程的私有数据来解决这个问题。 线程私有数据实现的主要思想是:在分配线程私有数据之前,创建与该数据相关联的健,转载 2015-08-10 17:23:53 · 1747 阅读 · 0 评论 -
线程私有数据
线程私有数据 创建私有数据之前得先创建一个键,需要创建与该数据相关联的键 #include int pthread_key_create(pthread_key_t *keyp, void (*destructor)(void *)); 成功--0,出错--返回错误编号 参数; keyp -- 存储创建的键,可以被任何线程使用,但每个线程把这个键和不同的线程私有数据地址 进行关联原创 2015-08-10 19:27:13 · 411 阅读 · 0 评论 -
经典同步问题--读者和写者问题
读者--写者问题 读者--写者问题是互斥问题的一个概括。一组并发的线程要访问一个共享的对象,例如一个主存中的数据结构, 或者是磁盘上的数据库。有些线程只读对象,其他线程只修改对象。只读对象的线程叫做读者,修改对象的线 程的对象叫做写者。写者必须拥有对对象的独占的访问,而读者可以和其他读者共享对象。 按照读者和写者的优先级分为两类问题: 一、读者优先 读者优先,要求不要读者等待,原创 2015-09-03 20:23:31 · 2905 阅读 · 1 评论 -
经典同步问题--生产者和消费者
生产者--消费者问题 生产者和消费者线程共享一个有n个槽的有限缓冲区。生产者生产的新项目不断插入有限缓冲区, 消费者不停地从缓冲区取出项目。这里涉及操作共享变量的同步问题 还有有限缓冲区的问题,操作 共享缓冲区时,需要设置互斥变量让线程同步;缓冲区满的时候生产者停止生产,等待缓冲区有空间; 缓冲区空的时候,消费者不能忘缓冲区取,等待缓冲区有产品。 图文示例原创 2015-09-03 17:33:16 · 883 阅读 · 0 评论 -
线程原语
线程原语 比较两个线程是否相等 #include int pthread_equal(pthread_t tid1,pthread_t tid2); 相等--非0,否则-- 0 获得自身的线程ID #include pthread_t pthread_self(void); 创建线程 #include int pthread_create(pthread_原创 2015-08-10 11:31:21 · 570 阅读 · 0 评论