码迷,mamicode.com
首页 >  
搜索关键字:互斥    ( 2999个结果
跨进程边界共享内核对象
正在拜读《windows核心编程》,稍后总结。---------XiaoF先说说为何要实现此功能 1,利用文件映射对象,可以在同一电脑的不同进程之间共享数据块。 2,借助邮件槽和命名管道,在网络中的不同计算机上运行的进程相互发送消息。 3,互斥量。信号量。事件,允许不同进程中的线程做同步。如何实现,...
分类:其他好文   时间:2014-07-14 23:31:16    阅读次数:285
浅析Linux内核同步机制
很早之前就接触过同步这个概念了,但是一直都很模糊,没有深入地学习了解过,近期有时间了,就花时间研习了一下《linux内核标准教程》和《深入linux设备驱动程序内核机制》这两本书的相关章节。趁刚看完,就把相关的内容总结一下。为了弄清楚什么事同步机制,必须要弄明白以下三个问题: l        什么是互斥与同步? l        为什么需要同步机制? l        Linux内核提供哪...
分类:系统相关   时间:2014-07-14 13:12:01    阅读次数:461
【操作系统】进程间通信
竞争条件 两个或多个进程读写某些共享数据,而最后的结果取决于进程运行的精确时序,称为竞争条件。凡涉及到资源的共享时就容易发生这样的事情。解决的办法是设立临界区,让进程互斥地访问共享资源。一个好的避免竞争条件的方案,必须满足4个条件: 任何两个进程不能同时处于临界区。不应对CPU的速度和数量做任何假设。临界区外运行的进程不得阻塞其它进程。不得让进程无限期等待进入临界区。 忙...
分类:其他好文   时间:2014-07-13 15:52:18    阅读次数:256
Effective C++ Item 29 为”异常安全”而努力是值得的
经验:异常安全函数即使发生异常也不会泄漏资源或允许任何数据结构败坏。这样的函数区分为三种 可能的保证: 基本型-->发生异常,程序处于某个合法状态 强烈型-->发生异常,程序处于原先状态 不抛异常型-->承诺绝不抛出殿堂 示例: class PrettyMenu{ public: //... void changeBackground(std::istream &imgSrc); //改变背景图像 //... private: Mutex mutex; //互斥器 Image *bgI...
分类:编程语言   时间:2014-07-12 21:35:16    阅读次数:298
基于windows api实现的共享锁/独占锁
众所周知,windows平台上实现线程同步,或者说资源的加锁与解锁的方法有内核事件、临界区、互斥量、信号量,甚至interlocked系列函数等多种手段。但是在日常的编程中,我们使用这些手段对 “多个线程同时对同一个资源进行读写” 的时候,在读写之前先要对资源假锁,读写完之后要对资源解锁。 设想这样一种情况,有一个ftp服务器,每天有很频繁的对这个ftp服务的文件进行下载,但是几乎好几天才会对...
分类:Windows程序   时间:2014-07-12 19:27:34    阅读次数:397
C,Java和C#中典型的多线程范例都强烈推荐使用锁和互斥
根据java商城开发人员以及jsp商城开发人员介绍,在.NET中使用规定的“最佳实践”等任何超过每秒十几次的传输,都被认为是体面又好的性能表现,在这一点上来说你仅仅需要更大/更好/更多的硬件设备。
分类:编程语言   时间:2014-07-11 18:41:07    阅读次数:215
自旋锁与互斥锁
自旋锁(spinlock)与互斥锁(mutex)是并发编程中两个重要的概念。它们的主要作用是:对共享资源加锁以阻止数据的并发访问,从而保证数据一致性。但是它们也有一些不同点。本文主要介绍这些不同点,并说明我们什么时候该用自旋锁取代互斥锁。 理论基础 理论上,当一个线程尝试去获取一个互斥锁,但由于该互斥锁已经被其它线程获取而没有成功时,它会立刻进入休眠状态,从而让出CPU时间,允许其它线...
分类:其他好文   时间:2014-07-10 21:34:15    阅读次数:241
Java并发编程 ReentrantLock 源码分析
ReentrantLock 一个可重入的互斥锁 Lock,它具有与使用 synchronized 方法和语句所访问的隐式监视器锁相同的一些基本行为和语义,但功能更强大。这个类主要基于AQS(AbstractOwnableSynchronizer)封装的 公平与非公平锁。所谓公平锁就是指在多个线程的争...
分类:编程语言   时间:2014-07-09 14:31:42    阅读次数:306
在VC6.0中多线程编程示例(带同步信号量)
直接上代码:#include //必要的头文件,使用Windows API函数 #include int index = 0; int tickets = 100;//票数 HANDLE hMutex; //使用全局的互斥对象来保证对同一资源的互斥访问与操作这里是tickets //线程处理函数原型,形式可从MSDN中拷贝 //线程1 的入口函数 DWORD WINAPI Fun1Proc...
分类:编程语言   时间:2014-07-08 17:12:03    阅读次数:239
Linux高性能服务器编程——多线程编程(下)
多线程编程 条件变量 如果说互斥锁是用于同步线程对共享数据的访问的话,那么条件变量则是用于线程之间同步共享数据的值。条件变量提供了一种线程间的通信机制:当某个共享数据达到某个值得时候,唤醒等待这个共享数据的线程。 条件本身是由互斥量保护的。线程在改变条件状态前必须首先锁住互斥量,其他现成在获得互斥量之前不会察觉到这种变化,因为必须锁住互斥量以后才能计算条件。...
分类:编程语言   时间:2014-07-08 15:06:42    阅读次数:249
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!