1、Java语言中的线程安全按照线程安全的“安全程度”由强至弱来排序,可以将Java语言中各种操作共享的数据分为以下5类:不可变、绝对线程安全、相对线程安全、线程兼容和线程对立。2、线程安全的实现方法①互斥同步互斥同步(Mutual Exclusion&Synchronization)是常见的一种并... ...
分类:
编程语言 时间:
2016-07-25 16:20:43
阅读次数:
220
互斥量和信号量的区别1.互斥量用于线程的互斥,信号量用于线程的同步。这是互斥量和信号量的根本区别,也就是互斥和同步之间的区别。互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。同步:..
分类:
其他好文 时间:
2016-07-24 07:08:20
阅读次数:
167
1、读者写者写者:写数据读者:仅仅是读数据,不存在取走数据写者与写者关系:互斥读者与读者关系:没有关系写者与读者关系:同步、互斥解决方法:1)读者优先:读者正在读,写者不能终止读者,直到读者读完,写者才能写入2)写者优先:写者正在写,读者不能终止写者,直到写者..
分类:
其他好文 时间:
2016-07-20 13:47:32
阅读次数:
352
1、概念不同进程看到共同区域2、特点(1)是进程间通信最快的方式,对不同内存的映射(少了两次拷贝)(2)不提供任何同步互斥机制,也不自己维护(3)接口简单3、通信方式由文件系统提供--管道由systemV提供--消息队列、信号量、共享内存共享内存与信号量搭配使用4、实现shmat..
分类:
系统相关 时间:
2016-07-07 17:38:04
阅读次数:
255
1、相关概念信号量:本质是一种数据操作锁,本身不具有数据交换的功能,而是通过其他的通信资源(文件,外部设备)实现进程间通信,本身是一种外部资源的标识。相当于计数器,记录临界资源内资源可用数,保证进入临界区时有资源可用。负责数据操作的同步、互斥等功能。临界资源..
分类:
系统相关 时间:
2016-07-07 14:29:20
阅读次数:
242
主要介绍一下Linux下的互斥与阻塞方面的知识: 1. 原子操作 原子操作指的是在执行过程中不会被别的代码路径所中断的操作。 常用原子操作函数举例: atomic_t v = ATOMIC_INIT(0); //定义原子变量v并初始化为0 atomic_read(atomic_t *v); //返回 ...
分类:
系统相关 时间:
2016-07-03 13:01:04
阅读次数:
277
互斥量和临界区非常相似,只有拥有了互斥对象的线程才可以访问共享资源,而互斥对象只有一个,因此可以保证同一时刻有且仅有一个线程可以访问共享资源,达到线程同步的目的。 互斥量相对于临界区更为高级,可以对互斥量进行命名,支持跨进程的线程同步。互斥量是调用的Win32的API对互斥锁的操作,因此在同一操作系 ...
分类:
编程语言 时间:
2016-07-01 18:09:28
阅读次数:
155
1、网络中进程之间如何通信? 本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类: 消息传递(管道、FIFO、消息队列) 同步(互斥量、条件变量、读写锁、文件和写记录锁、信号量) 共享内存(匿名的和具名的) 远程过程调用(Solaris门和Sun RPC) 消息传递(管道、FIFO、消息队 ...
分类:
其他好文 时间:
2016-06-27 21:28:12
阅读次数:
201
5线程同步互斥
1、线程同步互斥的一个示例
多个线程同时访问或操作同一资源时,很容易出现数据前后不一致的问题。请看下面的例子:
男孩拿着折子去北京银行海淀分行取钱
女孩拿着男孩的银行卡去西单百货疯狂购物
男孩走到柜台钱询问帐户余额
银行的业务员小姐亲切地告诉他:"您还有10000元!"。
...
分类:
编程语言 时间:
2016-06-24 15:04:27
阅读次数:
189
什么是读写锁:读写锁实际是种特殊的旋锁,它把对共享资源的访问者划分成读者和写者,读者只对共享资源进读访问,写者则需要对共享资源进写操作。这种锁相对于旋锁,能提并发性,因为在多处理器系统中,它允许同时有多个读者来访问共享资源,最可能的读者数为实际的逻辑CPU数。..
分类:
其他好文 时间:
2016-06-22 11:03:30
阅读次数:
190