- 博客(6)
- 资源 (5)
- 收藏
- 关注
转载 无锁程序设计(CAS)
以下笔记主要来自:Coolshell - 无锁队列的实现。CAS操作所谓CAS指Compare and Set(或Compare and Swap)。现在几乎所有CPU指令都支持CAS,如X86的CMPXCHG汇编指令。CAS通常被视为无锁(lock free)数据结构的基础。CAS的C语言描述如下:int compare_and_swap(int* reg, int oldv, in
2014-01-20 16:00:06 3686 1
转载 关于CAS与LOCK FREE(java lock synchronized)
最近又看到有人在搞LOCK FREE的东西,在群里问CAS是什么。CAS在我的理解就是下面这段代码{if( *pVal == oldVal ) { *pVal = newVal; return true;} return false;}当然,CAS把这段代码做成了一个原子操作。很多人看到这里,并不是十分理解,这个原子操作怎么去实现LOCK FREE。一般C
2014-01-20 15:53:47 2880
转载 Lock与synchronized 的区别
1、ReentrantLock 拥有Synchronized相同的并发性和内存语义,此外还多了 锁投票,定时锁等候和中断锁等候 线程A和B都要获取对象O的锁定,假设A获取了对象O锁,B将等待A释放对O的锁定, 如果使用 synchronized ,如果A不释放,B将一直等下去,不能被中断 如果 使用ReentrantLock,如果A不释放,可以使B在
2014-01-20 10:12:00 661
原创 关于android webview js桥(addJavascriptInterface) 失效的问题
android webview中可以通过addJavascriptInterface将一个对象加入到webview中作为js方法供js调用,从而实现js与java的通信。但当程序被切入后台,后来启动的程序比较占内存,当webview被回收后,如果webView.setSaveEnabled(true);(默认是什么还没看),回收的时候会保存状态,如果再次启动的时候会带入所保存的状态,当调用js
2014-01-16 11:21:02 7815
转载 Java 理论与实践: 正确使用 Volatile 变量
原文地址:http://www.ibm.com/developerworks/cn/java/j-jtp06197.htmlvolatile 变量使用指南Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出
2014-01-08 13:54:45 627
转载 Java多线程(五)之BlockingQueue深入分析
一、概述:BlockingQueue作为线程容器,可以为线程同步提供有力的保障。二、BlockingQueue定义的常用方法1.BlockingQueue定义的常用方法如下: 抛出异常特殊值阻塞超时插入add(e)offer(e)put(e)offer(e, time, unit)移
2014-01-08 11:13:15 728
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人