※ 동기와 비동기
1. 동기(Synchronous)
- 직렬적 처리
- 요청과 결과가 동시에 일어남
- 요청이 들어오면 순차적으로 작업 수행, 해당 작업이 끝날때 까지 다음 작업은 대기하고, 해당 작업이 끝난 후에 다음 작업 실행
- 순서에 맞춰 작업이 진행되지만 여러가지 요청을 동시에 처리 불가
2. 비동기(Asynchoronous)
- 병렬적 처리
- 요청과 결과가 동시에 일어나지 않음
- 요청이 들어오면 해당 작업이 끝나지 않았더라도 다른 요청을 받고 작업이 끝나는 대로 결과를 처리
- 여러개의 요청을 동시에 처리 가능, 속도가 떨어질 수 있음
참고 사이트
:https://dev-coco.tistory.com/46
https://velog.io/@daybreak/%EB%8F%99%EA%B8%B0-%EB%B9%84%EB%8F%99%EA%B8%B0-%EC%B2%98%EB%A6%AC
※ 프로세스, 스레드, 코루틴 정리
1. 프로레스(Process)
: 보조기억장치의 '프로그램'이 메모리 상으로 적재되어 실행되면 '프로세스'가 됨
(컴퓨터에서 실행중인 프로그램)
: 각각 별도의 주소공간인 '힙(Heap)'을 할당 (독립적)
: 프로세스의 힙은 속한 모든 스레드가 공유 가능
: 하나의 프로세스가 생성될 때, 기본적으로 하나의 스레드를 같이 생성
2. 스레드(Thread)
: 같은 프로세스(Process)내에서 실행되면 여러 작업(흐름)의 단위
: 각 쓰레드는 독립된 메모리 영역인 '스택(Stack)'을 가짐
: 각 쓰레드는 다른 쓰레드에게 스택 메모리 공유 불가
3. 코루틴
- 스레드를 경량화(Lightweight Thread)한 것
- 스레드를 중단하지 않으면서 비동기적으로 실행되는 코드블록
- 작업 하나하나에 'Object'를 할당, 이 Object를 자유롭게 스위칭함으로써 비용을 줄임
※스레드와 코루틴의 차이점
차이점
- 스레드: 여러개의 스레드를 사용하여 여러개의 작업을 '병렬'로 수행
: 선점형 (일을 하는 동안에도 다른 스레드도 돌아감)
: 병렬성 비동기 수행
- 코루틴: 메인 스레드 상에서 여러개의 작업을 잘게 쪼개 나눠서 작업을 수행
: 동시성 비동기 수행
참고 사이트
:https://velog.io/@haero_kim/Thread-vs-Coroutine-%EB%B9%84%EA%B5%90%ED%95%B4%EB%B3%B4%EA%B8%B0
https://angangmoddi.tistory.com/308
'KDT > 유니티 기초' 카테고리의 다른 글
23/08/14 Test_Boss (0) | 2023.08.14 |
---|---|
23/08/13 [주말과제] SimpleRPG 통합하기 (1) | 2023.08.13 |
23/08/12 [주말과제] 복소수와 사원수 (1) | 2023.08.12 |
23/08/11 할거 (0) | 2023.08.11 |
23/08/10 내용 복습 (0) | 2023.08.10 |