独占锁:是一种悲观锁,synchronized就是一种独占锁,会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。乐观锁:每次不加锁,假设没有冲突去完成某项操作,如果因为冲突失败就重试,直到成功为止。一、CAS
操作乐观锁用到的机制就是CAS,Compare and Swap。CAS有3个操作数...
分类:
编程语言 时间:
2014-06-06 14:00:39
阅读次数:
452
第一章 线程安全的对象生命期管理第二章 线程同步精要第三章
多线程服务器的适用场合与常用编程模型第四章
C++多线程系统编程精要1.(P84)11个常用的最基本Pthreads函数:2个:线程的创建和等待结束(join)。封装为muduo::Thread4个:mutex的创建、销毁、加锁、解锁。封装...
分类:
编程语言 时间:
2014-06-02 08:58:26
阅读次数:
434
事件: 今软件包有更新,进入更新管理器,点击安装更新,出现错误。错误提示:E: 无法获得锁
/var/cache/apt/archives/lock - open (11 资源临时不可用)E:
无法对下载目录加锁解决步骤:将错误提示输入google中搜索。获得第一个方案,打开终端,输入: ps -a...
分类:
其他好文 时间:
2014-05-30 09:12:32
阅读次数:
246
Nhibernate并发控制【1】悲观并发控制
正在使用数据的操作,加上锁,使用完后解锁释放资源。使用场景:数据竞争激烈,锁的成本低于回滚事务的成本缺点:阻塞,可能死锁【2】乐观并发控制:
所谓乐观,就是乐观的认为其他人没有在用该资源,资源的使用者不加锁。 A 读取数据后,如果该数据被别...
分类:
系统相关 时间:
2014-05-30 05:44:34
阅读次数:
301
互斥量与条件变量的区别转载自:http://www.360doc.com/content/12/0129/10/1317564_182456205.shtml前面谈过了线程锁,下面我们在继续研究一下线程锁;互斥量从本质上来说是一个锁,对互斥量加锁后任何其他试图给它加锁的线程都会被阻塞直至当前线程释放...
分类:
其他好文 时间:
2014-05-26 20:43:25
阅读次数:
252
本篇继续介绍WaitHandler类及其子类
Mutex,ManualResetEvent,AutoResetEvent的用法。.NET中线程同步的方式多的让人看了眼花缭乱,究竟该怎么去理解
呢?其实,我们抛开.NET环境看线程同步,无非是执行两种操作:一是互斥/加锁,目的是保证临界区代码操作的“原...
分类:
编程语言 时间:
2014-05-26 20:30:56
阅读次数:
386
package com.produce;import
java.util.LinkedList;import java.util.Queue;/*@author shijin *
生产者与消费者模型中,要保证以下几点: * 1 同一时间内只能有一个生产者生产 生产方法加锁sychronize...
分类:
编程语言 时间:
2014-05-25 18:49:13
阅读次数:
367
一、同步容器类
1. 同步容器类的问题
线程容器类都是线程安全的,但是当在其上进行符合操作则需要而外加锁保护其安全性。
常见符合操作包含:
. 迭代
. 跳转(根据指定顺序找到当前元素的下一个元素)
. 条件运算
迭代问题可以查看之前的文章
《Java ConcurrentModificationException 异常分析与解决方案》
二、并...
分类:
编程语言 时间:
2014-05-25 11:09:47
阅读次数:
331
伴随着多核时代的到来,怎样充分利用好你的多个CPU的优势成了技术的关注点,那就是多线程多进程编程,二者的区别也很明显,进程是操作系统中拥有资源的最小单位,但是是重量级的。线程是系统调度的最小单位,是轻量级的,一个进程可以拥有很多个线程,但是线程是不拥有资源的,同一个进程中的线程共享这个进程中拥有的资源。以前学习java,一个灰常重要的并发方式就是多线程,因为线程的开销要比进程的少很多,而通过加锁来...
分类:
编程语言 时间:
2014-05-24 23:04:56
阅读次数:
389
在windows 7下,C:\Documents and
Settings文件夹是默认锁定的,很多时候要进入进行解除锁定,根据本人实践的经历略作介绍。
1、打计算机,进入c盘文件夹,2、分别点击“组织”→“属性”3、进入属性对话框,选择“安全”,下框中注意看一下有一项是拒绝的,主要是要改变这个设置。...