- 스레드는 선점 방식으로 멀티태스킹을 함
>시스템이 작업 시간이 끝났다고 결정을 하면, 작업 스레드에서 CPU를 빼앗아 다른 작업 스레드에게 CPU를 할당함
- 좀 더 긴 시간 동안 CPU를 점유하기 원하는 경우 Fiber를 사용
(비 선점형 스케쥴링)
- 함수
LPVOID WINAPI ConvertThreadToFiber (
LPVOID lpParameter
); // 성공 : 파이버 주소 반환
> 메인 스레드를 파이버로 변환하는 함수
LPVOID WINAPI CreateFiber (
DWORD dwStackSize, // 1개의 파이버를 생성할 때 할당할 메모리 크기
PFIBER_START_ROUTINE lpStartAddress, // 파이버에 사용할 콜백 함수
LPVOID lpParameter
); // 성공 : 파이버 주소 반환
> 파이버 생성
VOID WINAPI SwitchToFiber (
LPVOID lpFiber
);
> 파이버를 다른 파이버로 바꿀때 사용
'programing > Thread' 카테고리의 다른 글
데드락(Deadlock) 발생 조건 (0) | 2017.10.10 |
---|---|
쓰레드 풀 (0) | 2017.02.23 |
[링크] 멀티쓰레드 프로그래밍이 왜이리 힘드나요? (0) | 2015.06.02 |
타이버 기반 동기화 (0) | 2015.05.01 |
쓰레드 동기화 (0) | 2015.04.30 |