?NSThread: –优点:NSThread 比其他两个轻量级,使用简单 –缺点:需要自己管理线程的生命周期、线程同步、加锁、睡眠以及唤醒等。线程同步对数据的加锁会有一定的系统开销?NSOperation: –不需要关心线程管理,数据同步的事情,可以把精力放在自己需要执行的操作上 –NSO...
分类:
移动开发 时间:
2014-09-27 18:02:30
阅读次数:
205
/*例子:下面第二次加锁时将出现死锁,如果改为PTHREAD_MUTEX_ERRORCHECK_NP类型,第二次加锁将会返回非零值,不会出现死锁。*/#include #include #include #include #include void *consumer1(void *p){ ...
分类:
其他好文 时间:
2014-09-27 00:39:59
阅读次数:
241
asynDBCenterasynDBCenter是GS和DBCenter之间的模块,有了他GS访问数据库就是异步的了,以前是同步的,加入某个操作很耗时那么GS就在那等待这个返回值。1.对于std::queue哪些情况要加锁,哪些不加push、pop操作100%必须加锁,front和back操作是只读...
分类:
数据库 时间:
2014-09-25 01:35:57
阅读次数:
279
1.List 链表--修改快2.Set 集合3.Array 数组 --更新快4.Map 键值对=======Hash:基于散列具有Array与List的有点=======Queue:队列--线程共享资源(串行线程资源的封闭,采取的措施就是对共享资源加锁实现) 优先级队列 FIFO队...
分类:
其他好文 时间:
2014-09-24 07:00:05
阅读次数:
282
理论: 临界资源 PV操作:通过信号量机制进行维护关系资源的安全---看看操作系统.... 任务对资源进行操作,为了安全要加锁,锁加载临界资源操作上(也就是对共享资源的操作) 加锁 共享资源操作 解锁编程模型: 1.通过锁 2.threadLocal 3....
分类:
编程语言 时间:
2014-09-23 23:51:35
阅读次数:
296
加锁机制既可以确保可见性又可以确保原子性,而volatile变量只能确保可见性。public class NoVisibility { private static boolean ready; private static int number; private stat...
分类:
其他好文 时间:
2014-09-20 18:36:39
阅读次数:
213
MySQL 不同引擎的锁机制:MyISAM和MEMORY采用表级锁(table-levellocking)BDB采用页面锁(page-levelocking)或表级锁,默认为页面锁InnoDB支持行级锁(row-levellocking)和表级锁,默认为行级锁锁特点:表级锁:开销小,加锁快;不会出现...
分类:
数据库 时间:
2014-09-20 08:49:36
阅读次数:
191
在多线程开发中,除了synchronized这个关键字外,我们还能通过Lock接口来实现这种效果。通过Lock接口来实现
这种多线程加锁效果的好处是非常的灵活,我们不在需要对整个函数加锁,而且可以很方便的把他放在我们函数的任何
一个地方,非常的称心,而且从效率上来说,使用Lock接口要比使用synchronized关键字效率高一些,下面我们来使用
一个例子来说明这种方法的使用。
p...
分类:
编程语言 时间:
2014-09-19 23:59:06
阅读次数:
469
依靠数据默认的机制:Hibernate的加锁模式有:Ø LockMode.NONE : 无锁机制。Ø LockMode.WRITE :Hibernate在Insert和Update记录的时候会自动获取。Ø LockMode.READ : Hibernate在读取记录的时候会自动获取。以上这三种锁机制...
分类:
系统相关 时间:
2014-09-17 07:50:01
阅读次数:
206
除了加锁外,其实还有一种方式可以防止并发修改异常,这就是将读写分离技术(不是数据库上的)。先回顾一下一个常识:1、JAVA中“=”操作只是将引用和某个对象关联,假如同时有一个线程将引用指向另外一个对象,一个线程获取这个引用指向的对象,那么他们之间不会发生ConcurrentModificationE...
分类:
其他好文 时间:
2014-09-16 14:11:30
阅读次数:
139