今天在stackoverflow上看到一个关于Volatile, Interlock, Lock的问题,发现回答的特别好,所以就想到把它翻译一下, 希望给那些对它们有疑惑的人提供点帮助:假设有一个类,它含有一个可以被多线程访问的public int counter 字段, 这个数字只会增加或减少。当...
分类:
其他好文 时间:
2014-06-21 13:21:05
阅读次数:
209
今天在工作的时候发现自己update 一个表的某个字段超时,想了好久,首先想到的办法是,延长操作时间:mysql> set innodb_lock_wait_timeout=100mysql> show variables like 'innodb_lock_wait_timeout'; 但是时间....
分类:
数据库 时间:
2014-06-21 11:38:08
阅读次数:
277
1.概念 Lock比传统线程模型中的synchronized方式更加面向对象,与生活中的锁类似,锁本身也应该是一个对象。两个线程执行的代码片段要实现同步互斥的效果,它们必须用同一个Lock对象。2.案例package org.lkl.thread;import java.util.concurren...
分类:
编程语言 时间:
2014-06-21 00:32:08
阅读次数:
324
除了thread,boost::thread另一个重要组成部分是mutex,以及工作在mutex上的boost::mutex::scoped_lock、condition和barrier,这些都是为实现线程同步提供的。mutexboost提供的mutex有6种:boost::mutexboost::...
分类:
其他好文 时间:
2014-06-20 19:59:40
阅读次数:
293
出现这种情况主要是因为上次用SVN提交代码的时候没有提交完成就进行了中断 取消的操作。控制台打印报错信息: Attempted to lock an already-locked dirsvn: Commit failed (details follow):可以右键单击项目,然后选中以下选项 刷新清...
分类:
其他好文 时间:
2014-06-20 16:06:34
阅读次数:
243
本文由该问题引入到内核锁的讨论,归纳例如以下为什么须要内核锁?多核处理器下,会存在多个进程处于内核态的情况,而在内核态下,进程是能够訪问全部内核数据的,因此要对共享数据进行保护,即相互排斥处理有哪些内核锁机制?(1)原子操作atomic_t数据类型,atomic_inc(atomic_t *v)将v...
分类:
其他好文 时间:
2014-06-18 16:11:05
阅读次数:
224
多线程操作同一个文件时会出现并发问题。解决的一个办法就是给文件加锁(lock),但是这样的话,一个线程操作文件时,其它的都得等待,这样的话性能非常差。另外一个解决方案,就是先将数据放在队列中,然后开启一个线程,负责从队列中取出数据,再写到文件中。 public class MyExceptionAt...
分类:
其他好文 时间:
2014-06-18 15:24:34
阅读次数:
661
1.boost锁的概述: boost库中提供了mutex类与lock类,通过组合可以轻易的构建读写锁与互斥锁。2.mutex对象类(主要有两种): 1.boost::mutex(独占互斥类) -->有lock和unlock方法 2.boost::shared_mutex(共享互斥类) -->有...
分类:
编程语言 时间:
2014-06-18 11:16:03
阅读次数:
262
多线程数据同步错误比较难检测,因为通常是与事件的特定发生顺序有关。
一、同步术语
Barrier(屏障)
barrier是多个Thread的集合点:所有的Thread都应该到齐在这个barrier之后才能允许它们继续下去。
Condition variable(条件变量)
实际上不是变量,而是与某个lock有关联的变量。
Event variable(事件变...
分类:
编程语言 时间:
2014-06-18 06:23:12
阅读次数:
356
1调优设计架构设计(RAC/单机)、应用设计(模块设计、E-R模型设计)2调优应用代码调优、应用存储对象调优3条用内存数据高速缓存区、共享池、重做日志缓存区、大池4、调优I/ORAID模式、文件系统与裸设备、存储缓存、表空间数据文件划分、存储对象分布等5、调优竞争回滚段、Lock \Latch
分类:
数据库 时间:
2014-06-17 12:56:20
阅读次数:
293