码迷,mamicode.com
首页 >  
搜索关键字:临界资源    ( 241个结果
线程、进程同步
同步:互斥、信号量、共享内存互斥:采用互斥对象机制,互斥对象唯一,谁拥有互斥对象就可以访问临界资源,否则等待信号量:P V操作P:申请信号量,如果信号量值大于1,则申请成功后,将其减1V:释放信号量进程通信:管道、共享内存、消息、socket共享内存:一般由一个进程创建,供其它进程共享使用
分类:编程语言   时间:2015-06-24 12:48:49    阅读次数:120
Linux 驱动之并发控制 (信号量)
摘要:并发控制,是多任务操作系统必须面临和解决的一个问题。并发与互斥,主要是用于保护临界资源,如果不站在操作系统进程调度的角度,就很难理解并发与互斥的概念和应用。无论是抢占式操作系统,还是分时操作系统,对于临界资源的保护,都必须采用互斥的机制。Linux内核中,有多种并发控制的机制:自旋锁、原子变量、信号量、读写锁等等。不同的并发机制对应于不同的应用场合,比如说,自旋锁可以应用到中断处理函数中,信号量则不可以。本文主要从一个globalmem_lock例子来阐述信号量的使用。注:该例子取自《Linux设备驱...
分类:系统相关   时间:2015-06-16 09:17:54    阅读次数:263
【Java】线程中的wait和notify
线程中的同步问题通常使用的是synchronized块,结合wait和notify方法,今天简单做了一个测试。发现当一个线程锁定了某个临界资源后另一个线程会自动等待,以往自己还认为需要自己写代码让其等待呢。。。共享资源:packagesm.model; importorg.apache.log4j.Logger; publiccla..
分类:编程语言   时间:2015-06-10 12:33:18    阅读次数:139
疯狂Java学习笔记(65)---------线程协作
线程间协作的两种方式:wait、notify、notifyAll和Condition   在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作。比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对临界资源(即队列)的占用权。因为生产者如果不释放对临界资源的占用权,那么消费者就无法消费队列中的商品,就不会让...
分类:编程语言   时间:2015-06-01 13:22:53    阅读次数:222
并发 并行 同步 异步 多线程 阻塞 非阻塞的区别
1. 并发(concurrency):在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。其中两种并发关系分别是同步和互斥 互斥:进程间相互排斥的使用临界资源的现象,就叫互斥。 同步(synchronous):进程之间的关系不是相互排斥临界资源的关系,而是相互依赖的关系。进一步的说明:就是前一个进程的输出作为后一个进程的输入...
分类:编程语言   时间:2015-05-27 15:50:29    阅读次数:2408
C#多线程开发8:线程同步之Mutex类
以下代码模拟“从自动取款机中取钱”的操作:当账户余额大于等于1000时,取出1000放入口袋。代码中使用两个线程同时执行取钱操作,若不进行同步处理,可能会存在两个线程同时进入取钱逻辑,导致最终取出2000的错误结果。所以代码中使用Mutex类同步线程访问取钱逻辑(临界资源)。 using System; using System.Threading; namespace MutexExample...
分类:编程语言   时间:2015-05-26 10:51:40    阅读次数:149
C#多线程开发7:使用Monitor类同步多个线程
在《使用lock语句同步多个线程》的文章中,使用lock语句同步多线程访问临界资源。 使用lock语句的代码如下所示。 private static object o = new object(); lock (o) { if (account >= 1000) { Thread.Sleep(10);//自动取款机打了个小盹 accoun...
分类:编程语言   时间:2015-05-25 22:28:31    阅读次数:280
生产者消费者之信号量的使用
实验报告一、实验目的1.熟悉临界资源、信号量及PV操作的定义与物理意义2.了解进程通信的方法3.掌握进程互斥与同步的相关知识4.掌握用信号量机制解决进程之间的同步与互斥问题5.实现生产者-消费者问题,深刻理解进程同步问题二、实验环境Linux系统三、实验内容在Linux操作系统下用C或C++实现经典...
分类:其他好文   时间:2015-05-07 11:54:50    阅读次数:253
为什么匿名类中使用局部变量时要声明为final呢
一个方法内部有两个线程共享内部类对象的时候,这个方法的局部变量如果能被访问, 则就成为临界资源,导致程序不稳定,所以必须是final的。 反正总而言之,java就是不允许你在局部内部类里面更改所在方法的局部变...
分类:其他好文   时间:2015-05-03 23:58:13    阅读次数:332
内核同步机制
内核中用于临界区保护下的互斥机制,它包括自旋锁、原子操作和信号量,三者保证了对临界资源访问的互斥型。1.1 内核中的互斥机制1.1.1 自旋锁自旋锁用在多个CPU系统中。当一个线程在一个CPU上正使用资源,而另一个线程在另一个CPU上正忙等待这个资源的时候,就会用到自旋锁来保护临界资源。在单处理器系...
分类:其他好文   时间:2015-04-29 00:41:07    阅读次数:180
241条   上一页 1 ... 18 19 20 21 22 ... 25 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!