| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
Tags
- 트라이
- Express.js
- trie
- 비트마스킹
- JavaScript
- 자바스크립트
- ccw 알고리즘
- 벨만-포드
- R 그래프
- Lock-free Stack
- 최소 공통 조상
- Behavior Design Pattern
- Binary Lifting
- Strongly Connected Component
- 이분 탐색
- Github
- 그래프 탐색
- Prisma
- 게임 서버 아키텍처
- reference counting
- 강한 연결 요소
- Spin Lock
- SCC
- DP
- localstorage
- PROJECT
- Delete
- 2-SAT
- 비트필드를 이용한 dp
- map
Archives
- Today
- Total
dh_0e
[C#] 코루틴(Coroutine) 본문
코루틴(Coroutine)
- 정의: 실행을 잠시 중단(Suspend)하고 제어권을 유니티에 양보했다가, 원하는 시점에 중단된 지점부터 다시 실행을 재개(Resume)할 수 있는 특별한 함수
- 비동기적 동작(Asynchronous-like): 멀티스레드는 아니지만, 마치 별도의 스레드에서 돌아가는 것처럼 시간에 따른 처리를 분산해서 수행함
- 협력적 멀티태스킹(Cooperative Multitasking): 함수 스스로가 "나 여기서 잠시 쉴게"라고 yield를 호출하여 메인 루프에 실행 권한을 넘겨주는 방식
- 상태 저장: 일반 함수는 종료되면 지역 변수가 사라지지만, 코루틴은 중단된 시점의 모든 상태(변수 값, 실행 라인)를 기억함
명령어
- IEnumerator: 코루틴의 반환 타입. "순서대로 실행할 목록을 들고 있는 가이드"라고 볼 수 있음
- yield
- return: "여기서 일단 멈춰!"라는 신호로, 뒤에 오는 조건(WaitForSeconds 등)에 따라 다시 돌아올 시점을 결정함
- break: 코루틴을 즉시 종료하는 명령어로, 일반 함수에서 return의 역할을 함
- StartCoroutine(): 코루틴을 실행하는 전용 엔진. 코루틴은 일반 함수처럼 이름만 부르면 작동하지 않고, StartCoroutine()을 사용하여 호출해야 함
- using System.Collections: System.Collections 네임스페이스를 가져와야 사용할 수 있음
ex) 실행 후 5초 뒤에 콘솔 출력
using UnityEngine;
using System.Collections;
public class test : MonoBehaviour
{
void Start()
{
StartCoroutine(Call());
}
IEnumerator Call(){
yield return new WaitForSeconds(5f);
print("5 seconds passed");
}
}