이번 포스트에서는 스레드의 장점 중 하나인 데이터의 공유와 이와 연관된 동기화 문제를 살펴보자. 데이터 공유와 동기화 데이터 공유멀티 스레드 프로그램의 장점 중 하나는 힙의 데이터를 공유한다는 점이다. 다음의 그림은 Account 라는 객체를 출금 스레드 2개와 입금 스레드 2개가 공유하고 있는 모습을 보여준다. 4개의 Account를 만들 필요 없이 하나의 객체가 사용되므로 효율적일 수 있다. 출금을 위한 뱅킹 시스템Account 객체는 잔금인 balance와 출금, 입금을 위한 withdraw, deposite 메서드를 갖는다. 문제는 출금 과정이 복잡해서 주토피아에 나오는 나무늘보처럼 살짝 느리게 동작한다고 생각해보자.package ch14.banking;public class Account {..
[Thread] 03.데이터의 공유와 동기화
이번 포스트에서는 스레드의 장점 중 하나인 데이터의 공유와 이와 연관된 동기화 문제를 살펴보자. 데이터 공유와 동기화 데이터 공유멀티 스레드 프로그램의 장점 중 하나는 힙의 데이터를 공유한다는 점이다. 다음의 그림은 Account 라는 객체를 출금 스레드 2개와 입금 스레드 2개가 공유하고 있는 모습을 보여준다. 4개의 Account를 만들 필요 없이 하나의 객체가 사용되므로 효율적일 수 있다. 출금을 위한 뱅킹 시스템Account 객체는 잔금인 balance와 출금, 입금을 위한 withdraw, deposite 메서드를 갖는다. 문제는 출금 과정이 복잡해서 주토피아에 나오는 나무늘보처럼 살짝 느리게 동작한다고 생각해보자.package ch14.banking;public class Account {..
2024.07.05