ReentrantLock이란? sychronized의 BLOCKED 상태, 무한대기 등 임계 영역 관리 한계를 극복하기 위해 자바에서 제공한 클래스이다. 아래 예제를 통해 알아보았다. Thread sychronized이란?" data-og-description="sychronized이란? java의 키워드이며 메서드에 선언한다. 선언된 메서드는 멀티스레드 상황에서 하나의 스레드만 실행할 수 있다. 아래 예제를 통해 알아보았다. sychronized 사용X 예제Main.javapublic clas" data-og-host="oniic.tistory.com" data-og-source-url="https://oniic.tistory.com/176" data-og-url="https://oniic.tistor..
sychronized이란? java의 키워드이며 메서드에 선언한다. 선언된 메서드는 멀티스레드 상황에서 하나의 스레드만 실행할 수 있다. 아래 예제를 통해 알아보았다. sychronized 사용X 예제Main.javapublic class Main { public static void main(String[] args) throws InterruptedException { Counter counter = new Counter(); Runnable task = new Runnable() { @Override public void run() { for (int i = 1; i 실행 결과결과: 11355 예상한 실..
volatile이란? volatile은 자바의 키워드이며, 변수의 타입 앞에 사용된다. 그리고 선언한 변수를 캐시 메모리가 아닌 메인 메모리를 통해 읽는다. 아래 예제를 통해 알아보았다. volatile을 사용X 예제Main.javapublic class Main { public static void main(String[] args) throws InterruptedException { Task task = new Task(); Thread thread = new Thread(task, "task"); System.out.println("Task.flag = " + task.flag); thread.start(); Thread.slee..
불변 객체란? 객체의 상태(내부의 값, 멤버 변수)가 변하지 않는 객체를 불변 객체라고 한다. 불변 객체 사용X 예제Book.javapublic class Book { private String name; public Book(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; }}Main.javapublic class Main { public static void main(String[] args) { Book book1 = new B..
