許容関数-pthread
4487 ワード
pthread_create
man page #include <pthread.h>
int pthread_create(pthread_t *restrict thread, const pthread_attr_t *restrict attr, void *(*start_routine)(void *), void *restrict arg);
/*
성공하면 0을 반환하고, 그 외에는 오류를 나타내는 오류번호를 반환.
*/
pthread_tスレッドはプロセス中に一意のスレッドIDに分割され、そのスレッドIDのデータ型が
pthread_t
であることを示す.pthread_t
は、異なるオペレーティングシステム上で異なる実装を有するため、異なるデータ型の採用を可能にする.thread
pthread createが正常に実行されると、生成されたスレッドのスレッドIDがポインタが指すバッファに含まれます.attr
ねじアトリビュートのパラメータを設定します.NULLを入力すると、デフォルトの属性値が入力されます.start_routine
pthread createによって作成された新しいスレッドが実行する関数.この関数は、pthread createの4番目のパラメータarg
というパラメータを受け入れます.arg
start_routinue
関数に渡されるパラメータ.pthread_detach
man page #include <pthread.h>
int pthread_detach(pthread_t thread);
/*
성공하면 0을 반환하고, 그 외에는 오류를 나타내는 오류번호를 반환. errno는 변경하지 않는다.
*/
pthread_create()
によって生成されたスレッド終了時にスレッドリソースを回収する関数.pthread_detach()
を使用する必要はなく、pthread_create()
に属性(attr
)を付与すれば、スレッド終了時にリソースを回収することができる.pthread_detach
関数が実行される前にスレッドが終了する場合があるため、attr
を介してリソースを解放する方法がより安全である.C言語:スレッドpthread detach()例-分離スレッド
pthread_attr_setdetachstate
pthread_join
man page #include <pthread.h>
int pthread_join(pthread_t thread, void **value_ptr);
/*
성공하면 0을 반환하고, 그 외에는 오류를 나타내는 오류번호를 반환.
*/
関数を使用して、スレッドが終了するのを待ってから、スレッドの戻り値ポインタを受信します.終了スレッドのリソースも解除され、pthread_detach
と同時に使用できません.パラメータ
thread
終了するスレッドのIDvalue_ptr
パラメータがNULLの場合、終了待ちスレッドの戻り値、すなわちstart_routine
が返す戻り値を得ることができる.ねじ(THREAD)の概念と例
Reference
この問題について(許容関数-pthread), 我々は、より多くの情報をここで見つけました https://velog.io/@jwoo/Philosophers-허용함수-pthreadテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol