thrd_create
cppreference.com
<tbody>
</tbody>
| <threads.h> 에 정의되어 있음.
|
||
int thrd_create( thrd_t *thr, thrd_start_t func, void *arg ); |
(since C11) | |
func 함수를 수행하는 새로운 쓰레드를 생성한다. 함수는 func(arg) 형태로 호출된다.
성공시, thr이 가리키는 객체는 새로 생성된 쓰레드의 식별자로 설정된다.
이 함수가 완료되면 쓰레드가 시작된다.
인자
| thr | - | 새로운 쓰레드의 식별자를 저장할 메모리 위치를 가리키는 포인터 |
| func | - | 실행할 함수 |
| arg | - | 함수로 전달될 인자 |
반환값
새로운 쓰레드를 무사히 생성하면 thrd_success를 반환한다. 메모리가 충분치 않았을 경우 thrd_nomem를, 기타 오류가 발생하면 thrd_error를 반환한다.
노트
끝나서 합쳐지거나 분리된 쓰레드의 식별자는 새로운 쓰레드의 식별자로 재사용될 수 있다.
thrd_start_t는 int(*)(void*)의 typedef 형이다. 이는 POSIX 의 void*(*)(void*)와는 다른 형이다.
모든 쓰레드 관련 저장값들은 NULL로 초기화된다.( tss_create 참고)
func의 반환값은 func의 반환값에 동일한 인자를 가지고 thrd_exit를 호출하는 것과 동일하다.
참고자료
- C11 standard (ISO/IEC 9899:2011):
- 7.26.5.1 The thrd_create function (p: 383)
같이 보기
(C11) |
detaches a thread (function) |
(C11) |
blocks until a thread terminates (function) |