프로세스, 스레드에 대한 복습을 했다.
쓰레드는 경량화된 프로세스라고 할 수 있다.
쓰레드는 공유된 자원을 사용한다.
멀티프로세스와 멀티스레드
멀티프로세스와 멀티스레드는 모두 처리방식의 일종이다.
한 프로그램에 대한 두가지 처리방식이라고 생각하고 접근해야 이해가 편하다.
한 어플리케이션이 여러가지 일을 처리하는 상황을 가정한다.
이때 멀티 프로세스 방식은 한 프로세스가 여러 일을 처리할수 없으니 부모 프로세스가 자식프로세스를 생성을 해서 일을 처리하게 한다. 이때 자식 프로세스는 부모와 별개의 메모리 영역을 사용한다.
멀티 쓰레드는 한 프로세스 안에 여러개의 쓰레드가 있다.
여러개의 작업을 하라는 명령을 받으면 각각의 쓰레드가 작업을 진행한다.
둘의 차이점은 전에 한번 공부 했었으나 보충하자면, 프로세스는 동기화 작업이 필요하지 않으나 쓰레드는 공유자원 관리를 해야한다는 점이 있다.
동시성,병렬처리
소프트웨어적 접근 X, 하드웨어적 접근을 해야 이해가 편하다.
싱글코어를 가진 cpu가 여러가지 일을 처리하기 위해서 빠른 텀으로 전환을 하면서 여러가지 일을 처리하는 것이 동시성이다. 빠른 속도로 전환을 하면서 작업을 진행하기 때문에 동시에 처리된것처럼 보인다.
병렬처리는 둘 이상의 코어를 가진 cpu가 둘 이상의 코어에서 하나 이상의 프로세스 혹은 쓰레드가 한꺼번에 진행되는 것이 병렬처리이다.
'개발일지(일간)' 카테고리의 다른 글
22년 12월 06일 (0) | 2022.12.06 |
---|---|
22년 12월 5일 SQL? (0) | 2022.12.05 |
22년 12월 01일 인터페이스와 업캐스팅 (0) | 2022.12.01 |
22년 11월 30일 JMV (0) | 2022.11.30 |
22년 11월 29일 미니프로젝트2(4) (0) | 2022.11.29 |