0、互斥量Windows下的互斥量是个内核对象,每次WaitForSingleObject和ReleaseMutex时都会检查当前线程ID和占有互斥量的线程ID是否一致。当多次Wait**时就要对应多次ReleaseMutex, 当ReleaseMutex过多次数时如果发现当前占有互斥量的线程ID和...
分类:
编程语言 时间:
2014-12-02 01:32:01
阅读次数:
166
@synchronized 的作用是创建一个互斥锁,保证此时没有其它线程对self对象进行修改。这个是objective-c的一个锁定令牌,防止self对象在同一时间内被其它线程访问,起到线程的保护作用。 一般在公用变量的时候使用,如单例模式或者操作类的static变量中使用。# import "N...
分类:
其他好文 时间:
2014-11-30 20:06:23
阅读次数:
173
关于MQX操作系统,也使用了一段时间了,一直想总结一下,今天就算开个头吧,希望后续整理一下思路,多做一些关于MQX的专题总结。言归正传!在MQX应用程序中可采用如下方式实现任务间的资源共享:1.事件、轻量级事件2.信号量、轻量级信号3.互斥锁4.消息、轻量级消息1.事件、轻量..
分类:
其他好文 时间:
2014-11-30 17:18:25
阅读次数:
343
信号量API综合实践//实践1:封装PV原语
union mySemUn
{
int val; // Value for SETVAL//
struct semid_ds *buf; // Buffer for IPC_STAT, IPC_SET//
unsigned short *array; // Array for GETAL...
分类:
系统相关 时间:
2014-11-30 12:34:17
阅读次数:
153
进程的同步与互斥 顺序程序与并发程序特征顺序程序并发程序顺序性共享性封闭性:(运行环境的封闭性)并发性确定性随机性可再现性 进程互斥 由于各进程要求共享资源,而且有些资源需要互斥使用,因此各进程间竞争使用这些资源,进程的这种关系为进程的互斥. 系统中某些资源一次只允许一个进程使用,称这样的资源为临界资源或互斥资源。 在进程中涉及到互斥资源的程序段叫临界区. 互斥示例说...
分类:
系统相关 时间:
2014-11-30 12:33:11
阅读次数:
272
参考资料:1 .浅谈Memory Reordering2.透过LINUX内核看无锁编程3.Why the "volatile" type class should not be useddfsdf4.锁的意义spinlock(自旋锁)lock-free(无锁编程)mutex(互斥锁)read_wri...
分类:
其他好文 时间:
2014-11-28 09:51:45
阅读次数:
185
MyISAM的锁调度MyISAM存储引擎的读锁和写锁是互斥的,读写操作是串行的。那么,一个进程请求某个MyISAM表的读锁,同时另一个进程也请求同一表的写锁,MySQL如何处理呢?答案是写进程先获得锁。不仅如此,即使读请求先到锁等待队列,写请求后到,写锁也会插到读锁请求之前!这是因为MySQL认为写...
分类:
数据库 时间:
2014-11-27 12:26:41
阅读次数:
169
一、自旋锁提出的背景 由于在多处理器系统环境中有些资源因为其有限性,有时需要互斥访问(mutual exclusion),这时会引入锁的机制,只有获取了锁的进程才能获取资源访问。即是每次只能有且只有一个进程能获取锁,才能进入自己的临界区,同一时间不能两个或两个以上进程进入临界区,当退出临界区时释.....
分类:
编程语言 时间:
2014-11-26 01:03:57
阅读次数:
10123
(1)临界资源 ? ? ? ? ?在操作系统中,进程是占有资源的最小单位(线程可以访问其所在进程内的所有资源,但线程本身并不占有资源或仅仅占有一点必须资源)。但对于某些资源来说,其在同一时间只能被一个进程...
分类:
其他好文 时间:
2014-11-24 19:21:53
阅读次数:
253
所谓的死锁,主要是由于进程B要访问进程A所在的资源,而进程A又由于种种原因,不释放掉其所占用的资源,所以数据库就会一直处于阻塞状态。四个必要条件:必要条件:互斥,一个资源,在同一时间点上,只能由一个进程访问。死锁分析:当任务TA在使用资源RA的时候,产生了未预知的问题,从而意外的停止了执行,但是还没...
分类:
数据库 时间:
2014-11-24 13:21:09
阅读次数:
297