JUC-内存模型


JUC-内存模型_第1张图片
JUC-内存模型_第2张图片
JUC-内存模型_第3张图片

JUC-内存模型_第4张图片
JUC-内存模型_第5张图片
JUC-内存模型_第6张图片
JUC-内存模型_第7张图片
JUC-内存模型_第8张图片
类锁在实例方法中使用:synchronized (this.getClass()){}

要注意脏读:对共享数据的改和读都要进行同步, 不然可能出现读取到改动中间值的错误情况。

线程出现异常会自动释放锁!!!

死锁

解决办法:让两个线程方法中的嵌套锁的锁对象顺序一样

	/**
	* 死锁的实质:
	*/
	一个线程:
	sychronized(a){
		sychronized(b){
		}
	}
	另一个线程:
	sychronized(b){
		sychronized(a){
		}
	}

你可能感兴趣的:(java进阶,多线程,java,并发编程)