管程的概念
管程 (英语:Moniters,也称为监视器) 是一种程序结构,结构内的多个子程序(对象或模块)形成的多个工作线程互斥访问共享资源。
这些共享资源一般是硬件设备或一群变量。管程实现了在一个时间点,最多只有一个线程在执行管程的某个子程序。
与那些通过修改数据结构实现互斥访问的并发程序设计相比,管程实现很大程度上简化了程序设计。
管程提供了一种机制,线程可以临时放弃互斥访问,等待某...
分类:
编程语言 时间:
2014-08-31 23:00:52
阅读次数:
275
接着上一篇继续学习多线程。 死锁(DeadLock) 当多线程共享资源时,各占一部分资源,而又在等待对方释放资源,这样的情况我们称为死锁。下面通过一个生动的程序来理解死锁。 class Program { private static object knife = new object(); //临...
分类:
编程语言 时间:
2014-08-22 20:55:59
阅读次数:
250
这一篇接着上一篇来继续学习多线程。 线程同步 在大多数情况下,计算机中的线程会并发运行。有些线程之间没有联系,独立运行,像这种线程我们称为无关线程。但也有一些线程,之间需要传递结果,需要共享资源。像这种线程,我们称为有关线程。比如,我们网上观看电影,一个线程负责下载电影,一个线程负责播放电影。它们只...
分类:
编程语言 时间:
2014-08-22 17:37:09
阅读次数:
375
这是篇关于java线程的文章,写的非常通俗易懂的,适合任何读计算机的同学学习.
线程同步
我们可以在计算机上运行各种计算机软件程序。每一个运行的程序可能包括多个独立运行的线程(Thread)。
线程(Thread)是一份独立运行的程序,有自己专用的运行栈。线程有可能和其他线程共享一些资源,比如,内存,文件,数据库等。
当多个线程同时读写同一份共享资源的时候,可能会引起冲突...
分类:
编程语言 时间:
2014-08-22 16:21:29
阅读次数:
307
cache fusion . grd . drm . gcs . ges
cache fusion
1.RAC是一个数据库运行在多个实例上,通过DLM(Distributed Lock Management):分布式锁管理器 来解决并发问题,RAC各个节点间的共享资源,为了保证每个节点访问数据的一致性,所以需要使用DLM来协调各个实例间的资源竞争访问。 这个D...
分类:
其他好文 时间:
2014-08-19 19:07:45
阅读次数:
334
在多线程的编程环境中,锁的使用必不可少! 于是,今天来总结一下为共享资源加锁的操作方法。 一、使用synchronized方式 ????//线程1 ????dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRI...
分类:
编程语言 时间:
2014-08-18 18:58:33
阅读次数:
276
获得自旋锁和释放自旋锁有好几个版本,因此让读者知道在什么样的情况下使用什么版本的获得和释放锁的宏是非常必要的。 如果被保护的共享资源只在进程上下文访问和软中断(包括tasklet、timer)上下文访问,...
分类:
其他好文 时间:
2014-08-18 09:22:44
阅读次数:
280
自旋锁和相互排斥锁是多线程编程中的两个重要概念。他们都能用来锁定一些共享资源,以阻止影响数据一致性的并发訪问。可是他们之间确实存在差别,那么这些差别是什么?1理论理论上,当一个线程试图获取一个被锁定的相互排斥锁时,该操作会失败然后该线程会进入睡眠,这样就能立即让还有一个线程执行。当持有相互排斥锁的线...
分类:
其他好文 时间:
2014-08-15 12:27:08
阅读次数:
190
互斥锁通信机制
基本原理
互斥锁以排他方式防止共享数据被并发访问,互斥锁是一个二元变量,状态为开(0)和关(1),将某个共享资源与某个互斥锁逻辑上绑定之后,对该资源的访问操作如下:
(1)在访问该资源之前需要首先申请互斥锁,如果锁处于开状态,则申请得到锁并立即上锁(关),防止其他进程访问资源,如果锁处于关,则默认阻塞等待.
(2)只有锁定该互斥锁的进程才能释放该互斥锁.
互斥量类型声...
分类:
编程语言 时间:
2014-08-15 10:47:48
阅读次数:
304
死锁:
在多线程竞争使用共享资源的情况下,就有可能出现死锁的情况。比如,当一个线程等待另一个线程所持有的锁时,那个线程又可能在等待第一个线程所持有的锁。此时,这两个线程会陷入无休止的相互等待状态,这种情况就称为死锁。
产生死锁的四个必要条件:
1、互斥条件。进程对所分配的资源进行排它性控制,即在一段时间内某资源仅为一进程所占有。
2、请求和保持条件。当进程因请求资源而阻...
分类:
编程语言 时间:
2014-08-13 01:09:24
阅读次数:
217