日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
PTHREAD(3) FreeBSD ライブラリ関数マニュアル PTHREAD(3)
名称
pthread -- POSIX スレッド関数
ライブラリ
POSIX スレッドライブラリ (libpthread, -lpthread)
書式
#include <pthread.h>
解説
POSIX スレッドは、プロセス内でスレッド (thread) 呼ばれる、複数のフロー制
御のための必要条件を備えたアプリケーションをサポートする 1 組の関数群で
す。マルチスレッドは、プログラムの性能を改善するために使用されます。
POSIX スレッド機能群は、次のグループのこのセクションで要約されます:
• スレッドルーチン
• 属性オブジェクトルーチン
• ミューテックス (mutex) ルーチン
• 条件変数ルーチン
• 読み込み/書き込みロックルーチン
• スレッドごとのコンテキストルーチン
• クリーンアップルーチン
POSIX スレッド関数への FreeBSD の拡張は、pthread_np(3) に要約されていま
す。
スレッドルーチン
int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
void *(*start_routine)(void *), void *arg)
実行の新しいスレッドを作成する。
int pthread_cancel(pthread_t thread)
スレッドの実行を取り消す。
int pthread_detach(pthread_t thread)
削除のためにスレッドをマークする。
int pthread_equal(pthread_t t1, pthread_t t2)
2 つのスレッド ID を比較する。
void pthread_exit(void *value_ptr)
呼び出しているスレッドを終了する。
int pthread_join(pthread_t thread, void **value_ptr)
呼び出しているスレッドは、指定したスレッドの終了をウェート (待つ)
する。
int pthread_kill(pthread_t thread, int sig)
指定されたスレッドにシグナルを配信する。
int pthread_once(pthread_once_t *once_control, void
(*init_routine)(void))
初期設定ルーチンを一度呼び出す。
pthread_t pthread_self(void)
呼び出しているスレッドのスレッド ID を返す。
int pthread_setcancelstate(int state, int *oldstate)
現在のスレッドの取り消し可能な状態を設定する。
int pthread_setcanceltype(int type, int *oldtype)
現在のスレッドの取り消し可能なタイプを設定する。
void pthread_testcancel(void)
呼び出しているスレッドの取り消しポイントを作成する。
void pthread_yield(void)
スケジューラは、現在のスレッドの代わりに別のスレッドを実行するこ
とを可能にする。
属性オブジェクトルーチン
int pthread_attr_destroy(pthread_attr_t *attr)
スレッド属性オブジェクトを破壊する。
int pthread_attr_getinheritsched(const pthread_attr_t *attr,
int *inheritsched)
スレッド属性オブジェクトから継承スケジュール属性を取得する。
int pthread_attr_getschedparam(const pthread_attr_t *attr,
struct sched_param *param)
スレッド属性オブジェクトからスケジュールパラメータ属性を取得す
る。
int pthread_attr_getschedpolicy(const pthread_attr_t *attr, int *policy)
スレッド属性オブジェクトからスケジュールポリシ属性を取得する。
int pthread_attr_getscope(const pthread_attr_t *attr, int
*contentionscope)
スレッド属性オブジェクトからコンテンション (contention) スコープ
属性を取得する。
int pthread_attr_getstacksize(const pthread_attr_t *attr, size_t
*stacksize)
スレッド属性オブジェクトからスタックサイズ属性を取得する。
int pthread_attr_getstackaddr(const pthread_attr_t *attr, void
**stackaddr)
スレッド属性オブジェクトからスタックアドレス属性を取得する。
int pthread_attr_getdetachstate(const pthread_attr_t *attr, int
*detachstate)
スレッド属性オブジェクトからデタッチ状態属性を取得する。
int pthread_attr_init(pthread_attr_t *attr)
デフォルト値でスレッド属性オブジェクトを初期化する。
int pthread_attr_setinheritsched(pthread_attr_t *attr, int inheritsched)
スレッド属性オブジェクトの継承スケジュール属性を設定する。
int pthread_attr_setschedparam(pthread_attr_t *attr,
const struct sched_param *param)
スレッド属性オブジェクトのスケジュールパラメータ属性を設定する。
int pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy)
スレッド属性オブジェクトのスケジュールポリシ属性を設定する。
int pthread_attr_setscope(pthread_attr_t *attr, int contentionscope)
スレッド属性オブジェクトのコンテンション (contention) スコープ属
性を設定する。
int pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize)
スレッド属性オブジェクトのスタックサイズ属性を設定する。
int pthread_attr_setstackaddr(pthread_attr_t *attr, void *stackaddr)
スレッド属性オブジェクトのスタックアドレス属性を設定する。
int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate)
スレッド属性オブジェクトのデタッチ状態を設定する。
ミューテックス (mutex) ルーチン
int pthread_mutexattr_destroy(pthread_mutexattr_t *attr)
ミューテックス属性オブジェクトを破壊する。
int pthread_mutexattr_getprioceiling(const pthread_mutexattr_t *restrict
attr, int *restrict ceiling)
ミューテックス属性オブジェクトの優先順位上限 (ceiling) 属性を取得
する。
int pthread_mutexattr_getprotocol(const pthread_mutexattr_t *restrict
attr, int *restrict protocol)
ミューテックス属性オブジェクトのプロトコル属性を取得する。
int pthread_mutexattr_gettype(const pthread_mutexattr_t *restrict attr,
int *restrict type)
指定されたミューテックス属性オブジェクトのミューテックスタイプ属
性を取得する。
int pthread_mutexattr_init(pthread_mutexattr_t *attr)
デフォルト値でミューテックス属性オブジェクトを初期化する。
int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *attr, int
ceiling)
ミューテックス属性オブジェクトの優先順位上限 (ceiling) 属性を設定
する。
int pthread_mutexattr_setprotocol(pthread_mutexattr_t *attr, int
protocol)
ミューテックス属性オブジェクトのプロトコル属性を設定する。
int pthread_mutexattr_settype(pthread_mutexattr_t *attr, int type)
ミューテックスが作成されるとき、使用されるミューテックスタイプ属
性を設定する。
int pthread_mutex_destroy(pthread_mutex_t *mutex)
ミューテックスを破壊する。
int pthread_mutex_init(pthread_mutex_t *mutex,
const pthread_mutexattr_t *attr)
指定された属性でミューテックスを初期化する。
int pthread_mutex_lock(pthread_mutex_t *mutex)
ミューテックスをロックし、それが利用可能になるまでブロックする。
int pthread_mutex_timedlock(pthread_mutex_t *mutex,
const struct timespec *abstime)
ミューテックスをロックして、それが利用可能になるか、またはタイム
アウトになるまでブロックする。
int pthread_mutex_trylock(pthread_mutex_t *mutex)
ミューテックスのロックを試みますが、ミューテックスが現在のスレッ
ドを含む別のスレッドによってロックされているなら、ブロックしませ
ん。
int pthread_mutex_unlock(pthread_mutex_t *mutex)
ミューテックスのロックを解除する。
条件変数ルーチン
int pthread_condattr_destroy(pthread_condattr_t *attr)
条件変数属性オブジェクトを破壊する。
int pthread_condattr_init(pthread_condattr_t *attr)
デフォルト値で条件変数属性オブジェクトを初期化する。
int pthread_cond_broadcast(pthread_cond_t *cond)
指定された条件変数で現在ブロックされているすべてのスレッドのブ
ロックを解除する。
int pthread_cond_destroy(pthread_cond_t *cond)
条件変数を破壊する。
int pthread_cond_init(pthread_cond_t *cond, const pthread_condattr_t
*attr)
指定された属性で条件変数を初期化する。
int pthread_cond_signal(pthread_cond_t *cond)
指定された条件変数でブロックされている少なくとも 1 つのスレッドの
ブロックを解除する。
int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex,
const struct timespec *abstime)
指定されたミューテックをアンロックし、条件のために指定された時間
より長くなくウェートし、次に、ミューテックを再ロックします。
int pthread_cond_wait(pthread_cond_t *, pthread_mutex_t *mutex)
指定されたミューテックをアンロックし、条件のためにウェートし、
ミューテックを再ロックします。
読み込み/書き込みロックルーチン
int pthread_rwlock_destroy(pthread_rwlock_t *lock)
読み込み/書き込みロックオブジェクトを破壊する。
int pthread_rwlock_init(pthread_rwlock_t *lock,
const pthread_rwlockattr_t *attr)
読み込み/書き込みロックオブジェクトを初期化する。
int pthread_rwlock_rdlock(pthread_rwlock_t *lock)
ロックを獲得することができるまでブロックして、読み込みのために読
み込み/書き込みロックをロックする。
int pthread_rwlock_tryrdlock(pthread_rwlock_t *lock)
ロックが利用可能でないなら、ブロックせずに、読み込みのために読み
込み/書き込みロックをロックすることを試みる。
int pthread_rwlock_trywrlock(pthread_rwlock_t *lock)
ロックが利用可能でないなら、ブロックせずに、書き込みのために読み
込み/書き込みロックをロックすることを試みる。
int pthread_rwlock_unlock(pthread_rwlock_t *lock)
読み込み/書き込みロックのロックを解除する。
int pthread_rwlock_wrlock(pthread_rwlock_t *lock)
ロックを獲得できるまでブロックして、書き込みのために読み込み/書き
込みロックをロックする。
int pthread_rwlockattr_destroy(pthread_rwlockattr_t *attr)
読み込み/書き込みロック属性オブジェクトを破壊する。
int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *attr,
int *pshared)
読み込み/書き込みロック属性オブジェクトのためにプロセス共有設定を
検索する。
int pthread_rwlockattr_init(pthread_rwlockattr_t *attr)
読み込み/書き込みロック属性オブジェクトを初期化する。
int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *attr, int
pshared)
読み込み/書き込みロック属性オブジェクトのためのプロセス共有設定を
設定する。
スレッドごとのコンテキストルーチン
int pthread_key_create(pthread_key_t *key, void (*routine)(void *))
スレッド特有のデータキーを作成する。
int pthread_key_delete(pthread_key_t key)
スレッド特有のデータキーを削除する。
void * pthread_getspecific(pthread_key_t key)
指定されたキーのためのスレッド特有の値を取得する。
int pthread_setspecific(pthread_key_t key, const void *value_ptr)
指定されたキーのためのスレッド特有の値を設定する。
クリーンアップルーチン
int pthread_atfork(void (*prepare)(void), void (*parent)(void),
void (*child)(void))
fork ハンドラを登録する。
void pthread_cleanup_pop(int execute)
呼び出しているスレッドの取り消しクリーンアップスタックの先頭の
ルーチンを削除し、状況に応じてそれを呼び出します。
void pthread_cleanup_push(void (*routine)(void *), void *routine_arg)
呼び出しているスレッドの取り消しスタックに指定された取り消しク
リーンアップハンドラをプッシュする。
実装に関する注
現在の FreeBSD POSIX スレッドの実装は、1:1 スレッドライブラリ (libthr,
-lthr) ライブラリに組み込まれています。それは、標準 C ライブラリ (libc,
-lc) 関数とスレッド関数のスレッドセーフなバージョンを含んでいます。スレッ
ド化されたアプリケーションは、これらのライブラリとリンクされます。
関連項目
libthr(3), pthread_atfork(3), pthread_attr(3), pthread_cancel(3),
pthread_cleanup_pop(3), pthread_cleanup_push(3),
pthread_cond_broadcast(3), pthread_cond_destroy(3), pthread_cond_init(3),
pthread_cond_signal(3), pthread_cond_timedwait(3), pthread_cond_wait(3),
pthread_condattr_destroy(3), pthread_condattr_init(3), pthread_create(3),
pthread_detach(3), pthread_equal(3), pthread_exit(3),
pthread_getspecific(3), pthread_join(3), pthread_key_delete(3),
pthread_kill(3), pthread_mutex_destroy(3), pthread_mutex_init(3),
pthread_mutex_lock(3), pthread_mutex_trylock(3), pthread_mutex_unlock(3),
pthread_mutexattr_destroy(3), pthread_mutexattr_getprioceiling(3),
pthread_mutexattr_getprotocol(3), pthread_mutexattr_gettype(3),
pthread_mutexattr_init(3), pthread_mutexattr_setprioceiling(3),
pthread_mutexattr_setprotocol(3), pthread_mutexattr_settype(3),
pthread_np(3), pthread_once(3), pthread_rwlock_destroy(3),
pthread_rwlock_init(3), pthread_rwlock_rdlock(3),
pthread_rwlock_unlock(3), pthread_rwlock_wrlock(3),
pthread_rwlockattr_destroy(3), pthread_rwlockattr_getpshared(3),
pthread_rwlockattr_init(3), pthread_rwlockattr_setpshared(3),
pthread_self(3), pthread_setcancelstate(3), pthread_setcanceltype(3),
pthread_setspecific(3), pthread_testcancel(3)
規格
pthread_ 接頭辞が付き、_np 接尾辞または pthread_rwlock 接頭辞が付いていな
い関数は、ISO/IEC 9945-1:1996 (``POSIX.1'') に適合しています。
pthread_ 接頭辞と _np 接尾辞が付いた関数は、POSIX スレッドの移植性がない
拡張です。
pthread_rwlock 接頭辞が付いた関数は、Version 2 of the Single UNIX
Specification (``SUSv2'') の一環として The Open Group によって作成された
拡張です。
FreeBSD 13.2 October 12, 2021 FreeBSD 13.2