@19.1 ~ /동시성 모델
-
스레드와 잠금장치@19.1 ~ /동시성 모델 2020. 7. 4. 11:04
스레드와 잠금장치를 이용하는 프로그래밍은 마치 포드 모델 T와 비슷하다 그차로 A라는 장소에서 B라는 장소까지 운전해서 갈 수는 있지만 원시적이고 어려운 운전이 될 것이며, 새로운 기술과 비교하면 안전성도 떨어지고 위험하기까지 하다 하지만 많은 문제점에도 스레드와 잠금장치는 많은 동시성 소프트웨어를 작성할 때 기본 선택이 되고 있다 스레드와 잠금장치는 실제 하드웨어가 동작하는 방식을 그대로 옮긴것과 크게 다르지 않다 이들은 너무 단순하여 대부분의 언어가 어떠한 형태로든 이런 기능을 제공하고 있다 상호배제란? 잠금장치를 사용하는 것은 특정한 데이터에 접근하는 스레드가 한 번에 하나만 존재하도록 강제한다 경쟁조건이나 데드락처럼 상호배제가 정상 동작하지 못하게 만드는 상태에 대해서도 알고 있을 것이다 하지만 ..
-
동시성 혹은 병렬성?@19.1 ~ /동시성 모델 2020. 7. 1. 21:20
동시성 혹은 병렬성? 내 아내는 교사다. 다른 교사들과 마찬가지로 그녀는 멀티태스킹에 능숙하다. 어느 한 시점에서 보면 그녀는 한 가지 일을 수행하지만 언제나 여러 일을 한꺼번에 다루어야 한다. 한 학생이 책을 읽는 것을 듣는 동시에 떠들썩한 교실을 진정시키거나 다른 학생의 질문에 답을 주는 식이다 이것은 동시성이지 병렬성이 아니다. 즉 내 아내는 한명 뿐이다 그녀는 돕는 조교가 같이 있다면(한사람이 책읽는걸 듣고 지도하는 동안 다른 사람이 질문에 답하는 식으로) 동시성과 병렬성이 모두 가능해진다 아내의 학급이 연하장 카드를 디자인해서 생산한다고 생각해보자 학생 한 명당 다섯 개씩 만들도록 할당하는 방법을 쓸 수 있을 것이다. 이렇게 하는 것은 (상위의 수준에서 바라보았을 때) 카드를 만드는 한가지 일만..