转载至:http://blog.csdn.net/aqszhuaihuai/article/details/7024551 当我们提交一条sql语句时,Oracle会做哪些操作呢? Oracle会为每个用户进程分配一个服务器进程:service process(实际情况应该区分专用服务器和共享服务器 ...
分类:
数据库 时间:
2016-12-22 16:54:25
阅读次数:
199
1、volatile变量是一种稍弱的同步机制在访问volatile变量时不会执行加锁操作,因此也就不会使执行线程阻塞,因此volatile变量是一种比synchronized关键字更轻量级的同步机制。 2、从内存可见性的角度看,写入volatile变量相当于退出同步代码块,而读取volatile变量 ...
分类:
编程语言 时间:
2016-12-22 11:53:41
阅读次数:
186
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17288243 加锁(synchronized同步)的功能不仅仅局限于互斥行为,同时还存在另外一个重要的方面:内存可见性。我们不仅希望防止某个线程正在使用对象状态而另一个线程在同时修改该状态, ...
分类:
编程语言 时间:
2016-12-22 10:47:53
阅读次数:
147
Ubuntu “无法获得锁”解决方案(E: 无法获得锁 /var/cache/apt/archive 现象一: E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源临时不可用) E: 无法对管理目录(/var/lib/dpkg/)加锁,是不是另一个包管理程序在使用它? ...
分类:
系统相关 时间:
2016-12-18 23:30:23
阅读次数:
255
一、同步类容器 同步类容器都是线程安全的,但在某些场景下可能需要加锁来保护复合操作。复合类操作如:迭代(反复访问元素,遍历完容器中的所有元素)、跳转(根据指定的顺序找到当前元素的下一个元素)、以及条件运算。这些复合操作在多线程并发的修改容器时,可能会表现出意外的行为,最经典的便是Concurrent ...
分类:
其他好文 时间:
2016-12-15 22:58:30
阅读次数:
325
unique更方便使用,但是会消耗更多的计算机性能 onceflag保证一个线程被调用一次,防止不能的加锁开锁 ...
分类:
编程语言 时间:
2016-12-15 00:55:37
阅读次数:
188
1、Lock 只能对引用对象加锁 Lock锁定区间内可以对锁定值修改而不发生运行时错误,通常也会采用此种修改方式。这种方式又有点类同于使用Monitor.Wait取得资源,并对这个资源进行操作。 用法: private static readonly object locktask= new obj ...
分类:
其他好文 时间:
2016-12-12 23:36:10
阅读次数:
220
关于程序并发是老生常谈的话题了,工作中也经常去碰到,有必要来总结一下,其实并发与之关联的解决办法就是锁,加锁会消耗程序的性能和一些资源这是肯定的,当然如果能利用本身的原子性操作(指令的完整执行,在执行期间并不会被其他线程去中断,也不会存在上下文的切换),实现无锁编程是最好的。 1.防止重复请求 最近 ...
分类:
其他好文 时间:
2016-12-11 18:36:08
阅读次数:
158
在实际开发中,往往在基本两三种创建线程的方法之外,还用到一个简单的创建线程调用方法的情况,代码如下: 通过new Thread方法创建一个新的线程,在线程里调用deleteRedisByRedisKey方法,有时候在执行这个方法汇报异常,我的是空指针异常,是因为这个方法里用到的一些方法有可能会出现数 ...
分类:
编程语言 时间:
2016-12-08 18:04:33
阅读次数:
151
今天看到文章讨论 i++ 是不是原子操作。 答案是不是! 参考:http://blog.csdn.net/yeyuangen/article/details/19612795 1.i++ 不是,分为三个阶段: 内存到寄存器寄存器自增写回内存这三个阶段中间都可以被中断分离开. 2.++i首先要看编译器 ...
分类:
其他好文 时间:
2016-12-07 20:49:45
阅读次数:
240