JUC 프로필

java.util.concurrent패키지, 일반적으로이 패키지에 사용되는 동시 프로그래밍 툴의 증가합니다 (JUC 라한다)
를 포함하여 유사한 스레드를 정의하는 사용자 정의 서브 시스템 线程池, 异步 IO그리고 轻量级任务框架또한 멀티 스레드 컨텍스트의 디자인을 제공
Collection实现

volatile、synchronized 和 final 实现可见性。
synchronized 和在 lock、unlock 中操作保证原子性。
volatile 和 synchronized 两个关键字来保证线程之间操作的有序性

휘발성 키워드

private volatile int account = 100;
synchronized也能保证可见性,但是效率低
휘발성 키워드는 도메인 변수 잠금 무료로 이용할 수, 경량 동기화 전략을위한 메커니즘을 제공합니다 :

  1. 휘발성 변수는있을 것이다 可见性. 휘발성 변수가 아니라, 즉 메모리를 직접 수정하는 대신에 레지스터의 값을 이용하여, 실 내부 캐시 순서를 허용
  2. 휘발성 원자 작업을 제공하지 않습니다, 변수의 마지막 유형을 수정하는 데 사용할 수 없습니다
  3. 은 "독점"이없는 휘발성

참고 : 휘발성 그를 만족하게 만 수정 具有可见性하지만, 不能保证它具有原子性
그러한은 volatile int a = 0;후 작업을 가지고 a++;이 변수가 시야를 가지고 있지만 a++, 여전히 비 원자 작업입니다
이 작업은 스레드 안전 문제를 존재, 즉.

나는 ++

java.util.concurrent.atomic패키지에서, 그것은 일반적인 원자 변수를 제공합니다

private AtomicInteger serialNumber = new AtomicInteger();
// 自增运算
serialNumber.getAndIncrement();

추천

출처www.cnblogs.com/loveer/p/11409425.html