volatile保证可见性不能保证原子性
《深入理解java虚拟机》中:
/**
* volatile变量自增运算测试
*
* @author zzm
*/
public class VolatileTest {
public...
汪明鑫
6年前 (2018-08-28) 909浏览 3评论
0喜欢
Lock更灵活,功能更丰富
public interface Lock {
void lock();
void lockInterruptibly() throws InterruptedException;
boolean tryLock();
...
汪明鑫
6年前 (2018-08-28) 904浏览 0评论
0喜欢
synchronized是java内置关键字,解决共享数据冲突,是一个可重入锁
synchronized( 需要一个任意的对象(锁) ){
代码块中放操作共享数据的代码
多个线程不能同时进行的部分
}
锁就是一个标记
如果用的不是一把锁,则两...
汪明鑫
6年前 (2018-08-28) 869浏览 0评论
0喜欢
设计一个不可重入锁
public class Lock{
private boolean isLocked = false;
public synchronized void lock() throws InterruptedException{
...
汪明鑫
6年前 (2018-08-28) 816浏览 0评论
0喜欢
【CAS Compare and Swap】
CAS 的关键点在于,系统在硬件层面保证了比较并交换操作的原子性, 处理器使用基于对缓存加锁或总线加锁的方式来实现多处理器之间的原子操作。
CAS 是非阻塞同步的一种常见实现。
CAS不会把线程挂起,性能要好的多,通常是基于...
汪明鑫
6年前 (2018-08-28) 923浏览 0评论
0喜欢
问题引出
//如何控制线程的执行顺序
public class Main {
static Thread thread1=new Thread(new Runnable() {
@Override
public void run()...
汪明鑫
7年前 (2018-08-03) 892浏览 0评论
0喜欢