一、 引言 众所周知,为了保护共享数据,需要一些同步机制,如自旋锁(spinlock),读写锁(rwlock),它们使用起来非常简单,而且是一种很有效的同步机制,在UNIX系统和Linux系统中得到了广泛的使用。但是随着计算机硬件的快速发展,获得这种锁的开销相对于CPU的速度在成倍地增加,原因很简单 ...
分类:
其他好文 时间:
2017-11-11 23:49:32
阅读次数:
237
多线程开发可以更好的发挥多核cpu性能,常用的多线程设计模式有:Future、Master-Worker、Guard Susperionsion、不变、生产者-消费者 模式; jdk除了定义了若干并发的数据结构,也内置了多线程框架和各种线程池; 锁(分为内部锁、重入锁、读写锁)、ThreadLoca ...
分类:
其他好文 时间:
2017-11-02 00:59:23
阅读次数:
175
轻量级的读写锁(Slim Reader-Writer locks):读写锁实际是一种特殊的自旋锁,它把对共享资源的访问者划分成读者和写者,读者只对共享资源进行读访问,写者则需要对共享资源进行写操作。这种锁相对于自旋锁而言,能提高并发性,因为在多处理器系统中,它允许同时有多个读者来访问共享资源,最大可 ...
分类:
编程语言 时间:
2017-10-19 19:54:02
阅读次数:
166
package com.java.concurrent; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; public class T... ...
分类:
编程语言 时间:
2017-10-17 15:10:12
阅读次数:
191
使用synchronized实现同步方法 使用非依赖属性实现同步 在同步块中使用条件(wait(),notify(),notifyAll()) 使用锁实现同步 使用读写锁实现同步数据访问 修改锁的公平性 在锁中使用多条件(Multri Condition) 使用synchronized实现同步方法 ...
分类:
编程语言 时间:
2017-10-12 17:50:38
阅读次数:
199
先来介绍下socket,网上摘抄点资料,免得自己打字了 网络中进程之间如何通信? 本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类: 1、消息传递(管道、FIFO、消息队列) 2、同步(互斥量、条件变量、读写锁、文件和写记录锁、信号量) 3、共享内存(匿名的和具名的) 4、远程过程调用( ...
分类:
移动开发 时间:
2017-09-27 18:53:59
阅读次数:
287
内容预告: 线程入门(线程概念,创建线程) 同步基础(同步本质,线程安全,线程中断,线程状态,同步上下文) 使用线程(后台任务,线程池,读写锁,异步代理,定时器,本地存储) 高级话题(非阻塞线程,扶起和恢复) 概览: C#支持通过多线程并行地执行代码,一个线程是独立的执行个体,可以和其他线程同时运行 ...
分类:
编程语言 时间:
2017-09-25 23:05:09
阅读次数:
259
1、自旋锁 2、自旋锁的其他种类 3、阻塞锁 4、可重入锁 5、读写锁 6、互斥锁 7、悲观锁 8、乐观锁 9、公平锁 10、非公平锁 11、偏向锁 12、对象锁 13、线程锁 14、锁粗化 15、轻量级锁 16、锁消除 17、锁膨胀 18、信号量 ...
分类:
编程语言 时间:
2017-09-24 15:29:45
阅读次数:
160
ReentrantLock具有完全互斥排他的效果,即同一时间只有一个线程在执行ReentrantLock.lock()方法后面的任务。这样做虽然保证了实例变量的线程安全,但效率却是非常低下的。JDK中提供了一个读写锁ReentrantReadWriteLock,使用它可以加快运行效率,在某些不需要操 ...
分类:
编程语言 时间:
2017-09-23 15:19:01
阅读次数:
160
单机并发编程有两种基本模型:"消息传递"和"共享内存";分布式系统运行在多台机器上,只有一种实用模型:"消息传递"。 单机上多进程并发可以照搬"消息传递",多线程编程用"消息传递"更容易保证程序的正确性。 多线程同步有很多种方式:互斥量、条件变量、信号量、读写锁等。尽量不要用信号量和读写锁 Don’ ...
分类:
编程语言 时间:
2017-09-16 13:34:33
阅读次数:
178