00. 동시성과 병렬성 - asloud/dev_note01 GitHub Wiki
- 동시적 프로그램
- 여러 개의 논리적 통제 흐름을 갖는다
- 스레드를 병렬로 실행될 수 있고 그렇지 않을 수도 있다
- 동시성 : 여러 일을 한꺼번에 다루는 것
- 하나의 스레드가 여러 일을 할 수 있음 (내 생각) - 개발자가 카톡을 하며, 잡답을 하며, 코딩을 한다. 동시에 여러일을 한다.
- 병렬적 프로그램
- 프로그램에서 사용하는 논리적 통제 흐름은 하나가 될 수 있고 그 이상일 수 있다
- 병렬성 : 여러 일을 한꺼번에 실행하는 것
- 여러 스레드가 동시여 하나의 일 또는 여러 일을 할 수 있음 (내 생각) - 여러 개발자가 여러 페이지를 만든다. 한번에 여러일을 한다.
- 스레드와 잠금(lock)은 병렬성을 직접 지원하지 않음
- 병렬로 동작하는 하드웨어에서 동시적인 프로그램을 실행시켜야 진정한 의미의 병렬적이거나 동시적인 프로그램
- 스레드와 잠금
- 많은 동시성 프로그램에서 사용
- 요즘은 read write lock에 대해 많이 물어보던데..
- 함수형 프로그래밍
- 동시성과 병렬성을 잘 지원하면서 요즘 슬슬 대세가 되어 간다
- 기본적으로 스레드에 안정을 보장하며 병렬처리가 쉽다고 한다
- 액터
- 공유 메모리와 분삭 메모리 아키텍쳐에서 활용이 가능
- 장애 허용과 탄력성에 대한 지원이 강하다고 한다
- 람다
- 맵리듀스와 스트리밍 프로세스의 장점을 결합하여 빅데이터 문제를 해결할 수 있도록 도와준다고 한다(진짜??)