강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của yongtech54
yongtech54

câu hỏi đã được viết

Làm chủ Java từ cơ bản cùng thầy Eun-jong (Nhập môn lập trình Java Do it) - Phần 2 (Cấp độ Master)

Lập trình đồng bộ hóa sử dụng phương thức wait()/notify()

synchronized 과정

Đã giải quyết

Viết

·

195

0

    public synchronized String lendBook() throws InterruptedException{
        while (bookList.size() == 0) {
            wait();
        }

        String book = bookList.remove(0);
        System.out.println(Thread.currentThread() + " 학생이 책을 빌렸습니다.");
        return book;
    }

 

위 코드의 경우 synchronized method로 처리하였습니다.

이 경우 shared resource(예제의 경우 this 객체)에 접근하는 3개의 thread에 대해서도 하나의 쓰레드가 차지한 경우 lock을 걸고 사용이 끝나면 다음 쓰레드가 사용하는 과정을 거치나요? (이러한 과정이 굉장히 빨라서 동시에 일어나는 것 처럼 보일 뿐)

 

 

java객체지향알고리즘

Câu trả lời 1

0

eunjong님의 프로필 이미지
eunjong
Người chia sẻ kiến thức

예.. 그렇습니다. method에 synchronized 키워드를 넣으면 그 메서드가 포함된 객체에 lock이 걸립니다. 쓰레드의 개수를 늘리면 waiting 하는 것을 확인하실 수 있습니다.

Hình ảnh hồ sơ của yongtech54
yongtech54

câu hỏi đã được viết

Đặt câu hỏi