dev-team-study / cs-study

기술 면접 대비를 위한 CS 스터디
103 stars 0 forks source link

[2회차_JAVA] 29. Java컬렉션 #136

Open Hchanghyeon opened 9 months ago

Hchanghyeon commented 9 months ago
HandmadeCloud commented 9 months ago

가시성 : 하나의 스레드에서 변경된 변수의 값을 다른 스레드에서 즉시 알수 있어야 한다. 하나의 스레드는 작업 이후 캐시를 사용하고 그 캐스를 읽어 사용하기때문에 메인 메모리와 동기화되지 않은 캐시 값을 읽을 수 있다.
volatile는 메인 메모리에 직접 접근해 변수 값이 변경되면 모든 스레드에게 변경된 값을 즉시 보장한다. 하지만 원자적 연산이나 스레드 상호 배제를 보장하지는 않는다. 동시성 문제를 완전히 해결해주지는 않음

blocking io : 입출력이 수행되는 동안 스레드는 대기상태에 있는다. (System.out.println은 blocking io)
non blockingn io : 입출력 작업을 수행하는 동안 호출자 스레드가 블록되지 않고 다른 작업을 수행하도록 한다.

hongdosan commented 9 months ago
Hchanghyeon commented 8 months ago
BeomSeogKim commented 8 months ago
BeomSeogKim commented 8 months ago

[추가 질문]