이전 글 : 2019/10/24 - [취업/준비] - 프로세스 VS 스레드 (메모리 상의 차이)
면접에서 정말 잘 다루는 문제다. 프로세스와 스레드의 차이 + 동기화 문제 해결 세트로다가.
면접 보다보면 만날 확률 100%
학문적으로(?) 이야기하자면 세마포어 Semaphore, 뮤텍스 Mutex 등을 이용해서 해결할 수 있다.
이에 대한 설명은 어딜 가나 많으니 논외로 하고, 잠깐 생각해보자.
아니.. 이렇고 저렇고 할 거 없이 동기화 문제가 안 일어나게 하면 안돼?
그렇다.
동기화 문제를 해결하는 가장 좋은 방법은 사실 그런 문제가 일어날 일이 없게 하는 것이다.
그러려면 어떻게 해야할까?
답은 간단하다. 불변성 immutable 이용
객체를 Read-Only로 만들거나 수정을 가할 때는 새로운 객체가 생성되게 해서, 객체의 내용이 불변하도록 만들면 되는 것 아닌가?
그러면 어떤 스레드에서는 원래 데이터를 참조하고 있을 거고, 수정을 가한 스레드에선 본인이 만든 데이터를 참조하고 있을 것이다!
이럴 경우 물론 메모리 정리가 잘 되어야 하지만..
일단 동기화 문제는 깔끔히 해결되리라는 것을 예상할 수 있다.
'취업 > 준비' 카테고리의 다른 글
Class VS Object VS Instance (0) | 2019.10.24 |
---|---|
Overriding VS Overloading (오버라이딩 VS 오버로딩) (0) | 2019.10.24 |
node.js의 특징 (0) | 2019.10.24 |
객체지향 / OOP에 대해 설명해보세요 (0) | 2019.10.24 |
프로세스 VS 스레드 (메모리 상의 차이) (0) | 2019.10.24 |