线程同步:
当多个线程共享相同的内存时,需要确保每个线程看到一致的数据视图。如果每个线程使用的变量都是其他线程不会读取和修改的,那么就不存在一致性问题。同样,如果变量是只读的,多个线程同时读取该变量也不会有一致性的问题。但是,当一个线程可以修改的变量,其他线程也可以读取和修改的时候,我们就需要对这些线程进行同步,确保它们在访问变量的存储内容时不会访问到无效的值。
为了解决这个问题,线程不得...
分类:
编程语言 时间:
2015-03-03 11:40:00
阅读次数:
198
场景:
1. 需要统计某个线程的对象上创建的个数.
2. 当创建的堆空间需要根据线程需要创建和结束时销毁时.
3. 因为范围是线程只能看到自己的存储数据,所以不需要临界区或互斥量来维护自己的堆内存. 加入如果用全局std::map实现,那么必须在put和get时加锁,这是很损耗资源的.
4. 可以用在维护一个连接,比如socket,database连接....
分类:
编程语言 时间:
2015-03-01 00:25:18
阅读次数:
273
IPC的3种技术:
进程(线程)间传递消息的6种接口:
1.管道
2.消息队列
3.过程调用
进程(线程)间同步的6种接口:
1.信号量(两种)
2.互斥量
3.条件变量
4.读写锁
5.记录上锁
进程(线程)间共享内存的2种接口:
1.匿名共享内存
2.有名共享内存...
分类:
系统相关 时间:
2015-02-28 18:40:12
阅读次数:
215
场景:
1. 在多线程程序里,临界区是最常见的同步访问共享资源的最简单的解决方案.
2. pthread是跨平台的线程模型,那么它和本地的线程模型的临界区编程有什么区别呢?...
分类:
编程语言 时间:
2015-02-27 18:27:43
阅读次数:
306
上文讨论了互斥量和条件变量用于线程的同步,本文将讨论读写锁和自旋锁的使用,并给出了相应的代码和注意事项,相关代码也可在我的github上下载。
读写锁
对于互斥量要么是锁住状态要么是不加锁锁状态,而且一次只有一个线程可以对其加锁,而读写锁对线程的读数据加锁请求和写数据加锁请求进行了区分,从而在某些情况下,程序有更高的并发性。对于读写锁,一次只有一个线程可以占有写模式的读写锁,但是多个线程可...
分类:
编程语言 时间:
2015-02-25 17:08:45
阅读次数:
162
Posix信号量Posix 信号量有名信号量无名信号量sem_opensem_initsem_closesem_destroysem_unlink sem_waitsem_post 有名信号量#include /* For O_* constants */
#include /* For mode constants */
#include
sem_t *s...
分类:
编程语言 时间:
2015-02-19 17:32:31
阅读次数:
234
注意:本次实现线程的暂停执行主要采用互斥量的方法,如果有更好的实现方法的小伙伴可以在下面留言!直接插入代码了,由于做的小demo,代码写的可能有点乱,但还算完整。//mythread.h#ifndef MYTHREAD_H#define MYTHREAD_H#include #include #in...
分类:
编程语言 时间:
2015-02-09 17:39:48
阅读次数:
222
一、基础知识。1:线程同步机制:互斥量,读写锁,条件变量,自旋锁,屏障。 1,互斥量:每个进程访问被互斥量保护的资源时,都需要先对互斥量进行判断。 1)互斥量重要属性:进程共享属性,健壮属性,类型属性。 2)部分系统 不支持 进程共享属性 3)对互斥量重复加锁会导致死锁。 2,...
分类:
编程语言 时间:
2015-02-03 16:37:20
阅读次数:
282
1.互斥量:Mutexa.用于互斥访问b.类型:pthread_mutex_t,必须被初始化为PTHREAD_MUTEX_INITIALIZER(用于静态分配的mutex,等价于 pthread_mutex_init(…, NULL))或者调用pthread_mutex_init。Mutex也应该用...
分类:
编程语言 时间:
2015-02-03 12:49:59
阅读次数:
200
转自:
使线程同步
在程序中使用多线程时,一般很少有多个线程能在其生命期内进行完全独立的操作。更多的情况是一些线程进行某些处理操作,而其他的线程必须对其处理结果进行了解。正常情况下对这种处理结果的了解应当在其处理任务完成后进行。
如果不采取适当的措施,其他线程往往会在线程处理任务结束前就去访问处理结果,这就很有可能得到有关处理结果的错误了解。例如,多个线程同时访问同一个全局变量,如果...
分类:
编程语言 时间:
2015-01-28 13:09:00
阅读次数:
372