, 내가 가진하시기 바랍니다 의심을 처리자바 동기화는 동기화 된 블록과 아래의 시나리오 동기화 방법 사이
Class table
{
Synchronized(this)
{
……………………
}
}
여기 테이블 클래스의 객체를 잠갔습니다. -------------------------------------- ...
2 부 :
Class table
{
Customer cust=new Customer();
Synchronized(cust)
{
……………………
}
}
여기서 우리는 고객의 물건에 자물쇠가 붙었다 part1에서 우리는? - table 클래스의 물건을 잠근다. 테이블 클래스의 객체가 동기화 된
블록에 동시에 액세스하려고 할 수 있으므로 테이블 클래스를 잠급니다.이를 방지하기 위해 part1에서 테이블 클래스
의 객체를 잠급니다. 이제 part2에 오셨습니까? - - 여기 고객 클래스의 객체를 잠갔습니다 ------------------------------- ------- ...
내 의심 :
왜 우리는 파트 2에서 테이블 클래스가 아닌 다른 테이블 클래스의 객체를 고정해야합니까?
우리는 2 부에서의 Cust에 고정되지 않을 경우, 우리는 우리의 Cust 잠금 다음 또한 우리가 동기화 블록에 액세스하는 테이블 클래스의 객체가 필요한 경우 테이블 에게 클래스 를 사용하여 동기화 블록에 액세스 할 수 있습니다. 동기화 된 블록에 액세스하는 데 필요한 테이블 클래스의 개체입니다. 동기화로 인해 테이블 클래스의 객체가 서로 다른 스레드에서 동기화 된 블록
에 동시에 액세스하지 못하게했습니다. 그런데 왜 테이블 클래스에서 테이블 클래스가 아닌 다른 개체를 잠 가야합니까?고객 클래스의 객체가
다른 위치에서 동시에 동기화 된 블록에 액세스하려고합니까?파트 2에서 우리는 테이블 클래스 이외의 다른 객체를 잠갔습니다. In Table 클래스 이외의 클래스의 개체에서 테이블 클래스를 잠그는 상황이
part2에서 고객 클래스의 개체에 잠기는 이점은 무엇입니까?고객 클래스의 개체, 즉 테이블 클래스 이외의 개체를 잠글 필요가 있습니까?
파트 2에서 고객 클래스의 객체를 잠그지 않으면 어떤 피해가 발생합니까?
제발, 저는 자바 스레드에 익숙하지 않습니다. 잠시 동안 그 질문을 머리에 쓰려고했습니다. 명확한 설명이 도움이 될 것입니다. 감사합니다
모노 스페이스 글꼴이 텍스트를 읽기 어렵다는 것을 알고 있습니까? 코드 블록에서 텍스트를 떼어도 되겠습니까? –
서식을 수정하는 것이 좋습니다. 또한 Java 동기화는 널리 논의되는 주제이므로 이미 StackOverflow에서 살펴본 내용을 언급해야합니다. –
Google에서 "Java가 수행하는 작업"을 검색 할 때 첫 번째 히트가 다음 질문에 해당합니다. http://stackoverflow.com/questions/1085709/what-does-synchronized-mean –