스레드 안전성, 동기 로크 (동기화 방법 및 동기 부호)

1. 보안 스레드 (동기화를 스레드 잠금) 두 가지 방식으로 처리 스레드 1 개 동기 블록 동기 로크 2.
2. 동기 블록 : 프로그램 스레드에 복수의 스레드를 설정하려면 로크 대상은 어느 객체가 될 수있다 스레드 안전 장치 보장하기 위해
3. 동기화 방법이이 클래스의 의미를 나타 내기 때문에,이 목적은, 고정 할 수는 오브젝트의 종류이다.
4. 동기화 잠금 설정 : 동기 부호 블록 공용 클래스 틱 Runnable를 구현하는 () {잡아 표 컴파일 과정 :; 각각의 스레드 (100)는 표를 가지며 전용 INT 틱 // 스레드 개체 공유 변수는 각각의 스레드와 같은 변수가 가지고있는 클래스 정의에있어서 달리 정의 될 (100 개) 티켓의 총 OBJ = 새 개체를 반대하지 (); 각 실을 배치해야 다르게 정의 스레드 잠금 객체 클래스의 개체를 잠글 수 없습니다 스레드 잠금 장치가
) 공공 무효 실행 ({동안 ( 사실) 플러스 동기가 (동기 (OBJ) {{경우 (체크> 0) { 플러스 더 효과적 잠 (수면 100 밀리 초) :. Thread.sleep를 만들 (100)에서 System.out.println (는 Thread.currentThread () getName ( ) + + 티켓 "판매"- + "티켓")}}}
동기화 방법 : 공용 클래스 틱 R를 구현 unnable () {INT 개인 틱 = 100; 그동안 (true로) {저장 ();}}
. 동기화 공공 무효 저장 () {IF (틱> 0) {에서 System.out.println (는 Thread.currentThread () getName () + 항공권 + "판매"- + "티켓");}} \
이는 Runnable를 구현 클래스 동기화 잠금 방법에 기록한 다음 라인에 전화의 잠금 동기화 방법
6.Lock 멀티 스레드 잠금 : 개인 INT 틱 = 0; 잠금 자물쇠를 만들 : 잠금 L = 새로운 ReentrantLock와 () , 자전거 티켓 : 동안 (사실을 ) {l.lock () (경우 > 0) {에서 System.out.println (Thtread.currentThread (체크) .getName () + " 판매"+ 체크 - + "티켓"잠긴 자물쇠} 자원을 : 리터를 .unclock}

추천

출처www.cnblogs.com/hankai2735/p/11481880.html