모듈 기본 모듈

모듈 코루틴

동시성 제어 모듈

coroutine모듈은 fiber실행 순서를 제어하기 위한 API를 제공합니다. 이를 통해 개발자는 수동으로 전환하여 fiber공동 멀티태스킹이 가능합니다. coroutine모듈의 중요한 기능은 현재 실행 중인 모듈이 CPU를 포기하고 다른 모듈이 실행되도록 sleep하는 기능 입니다 .fiberfiber

coroutine다음은 모듈 사용 방법을 보여주는 간단한 예제 코드입니다 .

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
const coroutine = require('coroutine'); function foo() { console.log('start foo'); coroutine.sleep(1000); // enter sleep mode console.log('end foo'); } function bar() { console.log('start bar'); coroutine.sleep(2000); console.log('end bar'); } coroutine.start(foo); coroutine.start(bar);

위의 코드에서는 두 개의 함수를 정의한 foo다음 해당 함수를 bar사용하여 두 . 각각에서 우리는 이 함수를 사용하여 CPU를 확보하고 다른 사람들이 실행되도록 합니다.coroutine.startfiberfibercoroutine.sleepfiber

물체

Lock

객체 잠금, 참조Lock

1
Lock coroutine.Lock;

Semaphore

세마포어 객체, 참조Semaphore

1
Semaphore coroutine.Semaphore;

Condition

조건 변수 객체, 참조Condition

1
Condition coroutine.Condition;

Event

이벤트 객체, 참조Event

1
Event coroutine.Event;

Worker

독립 스레드 작업 개체, 참조Worker

1
Worker coroutine.Worker;

정적 함수

start

Fiber를 시작하고 Fiber 객체를 반환합니다.

1 2
static Fiber coroutine.start(Function func, ...args);

호출 매개변수:

  • func: 함수, 광섬유에 의해 실행되는 함수를 지정합니다.
  • args: ..., Fiber 내의 함수에 전달될 가변 인수 시퀀스

결과 반환:

  • Fiber, 섬유 객체를 반환합니다.

parallel

일련의 기능을 병렬로 실행하고 반환을 기다립니다.

1 2
static Array coroutine.parallel(Array funcs, Integer fibers = -1);

호출 매개변수:

  • funcs: 배열, 병렬로 실행되는 함수의 배열
  • fibers: 정수, 동시 파이버 수를 제한합니다. 기본값은 -1이며, funcs와 동일한 수의 파이버를 활성화합니다.

결과 반환:

  • Array, 함수 실행 결과의 배열을 반환합니다.

함수를 병렬로 실행하여 일련의 데이터를 처리하고 반환을 기다립니다.

1 2 3
static Array coroutine.parallel(Array datas, Function func, Integer fibers = -1);

호출 매개변수:

  • datas: 병렬 실행을 위한 배열, 데이터 배열
  • func: 함수, 병렬로 실행되는 함수
  • fibers: 정수, 동시 광섬유 수를 제한합니다. 기본값은 -1이며 데이터와 동일한 수의 광섬유를 활성화합니다.

결과 반환:

  • Array, 함수 실행 결과의 배열을 반환합니다.

함수를 병렬로 여러 번 실행하고 반환을 기다립니다.

1 2 3
static Array coroutine.parallel(Function func, Integer num, Integer fibers = -1);

호출 매개변수:

  • func: 함수, 병렬로 실행되는 함수의 개수
  • num: 정수, 반복 작업 횟수
  • fibers: 정수, 동시 파이버 수를 제한합니다. 기본값은 -1이며, funcs와 동일한 수의 파이버를 활성화합니다.

결과 반환:

  • Array, 함수 실행 결과의 배열을 반환합니다.

일련의 기능을 병렬로 실행하고 반환을 기다립니다.

1
static Array coroutine.parallel(...funcs);

호출 매개변수:

  • funcs: ..., 병렬로 실행되는 함수 집합

결과 반환:

  • Array, 함수 실행 결과의 배열을 반환합니다.

current

현재 파이버를 반환합니다.

1
static Fiber coroutine.current();

결과 반환:

  • Fiber, 현재 섬유 객체

sleep

지정된 시간 동안 현재 광섬유를 일시 중지합니다.

1
static coroutine.sleep(Integer ms = 0) async;

호출 매개변수:

  • ms: 정수, 일시 중지할 시간을 밀리초 단위로 지정합니다. 기본값은 0입니다. 즉, 시간이 있으면 작업이 즉시 재개됩니다.

정적 속성

fibers

배열, 현재 실행 중인 모든 파이버 배열을 반환합니다.

1
static readonly Array coroutine.fibers;

spareFibers

정수, 쿼리 및 유휴 설정Fiber수량, 서버 지터가 클 경우 유휴 상태를 적절하게 늘릴 수 있음Fiber수량. 기본값은 256입니다.

1
static Integer coroutine.spareFibers;

vmid

정수, 현재 쿼리vm일련번호

1
static readonly Integer coroutine.vmid;

loglevel

정수, 수정 및 쿼리vm출력 수준은 출력 정보를 필터링하는 데 사용됩니다. 기본값은 다음과 같습니다.console.NOTSET, 모두 출력

1
static Integer coroutine.loglevel;