このコンテンツを再生するにはFlash Player9.0.115 以上が必要です。
こちら
からダウンロードおよびインストールしてください。
また、Javascriptを有効にする必要があります。
インデックス
POSIX thread入門
POSIX thread入門
1. マルチスレッド
int x; void b(){ x=4; } void a(){ b(); } int main(){ a(); }
int x=2; void b(){ x=4; } void a(){ } int main(){ create(a()); create(b()); : join(a()); join(b()); printf(“%d\n”,x) }
2. 構造体
構造体
typedef int AAA ;
さて、
に対して、
3. POSIX thread関連の各種関数
POSIX threadにおいてスレッドの生成と終了待機を行う関数は”pthread_create”関数と ”pthread_join”関数である。 POSIX thread を簡略して、pthreadと呼ぶ。
#include
#include
void sub(int *x){ sleep(1); // 1秒間スリープする printf(”child: %d\n”,*x); } int main(void){ int ii; pthread_t th; ii=123; pthread_create(&th, NULL, (void *)sub, (void *)&ii); pthread_join(th, NULL); return 0; }
#include
#include
void sub(int *x){ sleep(1); // 1秒間スリープする printf(”child: %d\n”,*x); } int main(void){ int ii; pthread_t th; ii=123; pthread_create(&th, NULL, (void *)sub, (void *)&ii); pthread_join(th, NULL); return 0; }
4. 排他制御
int x=2; void b(){ x=x+4; } void a(){ x=x+1; } int main(){ create(a()); create(b()); : join(a()); join(b()); printf(“%d\n”,x) }
int x=2; pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER; void b(){ pthread_mutex_lock(&mutex); x=x+4; pthread_mutex_unlock(&mutex); } void a(){ pthread_mutex_lock(&mutex); x=x+1; pthread_mutex_unlock(&mutex); } int main(){ // ここは同じ }
5. プログラム例
プログラム例1(元のC言語)
プログラム例1(関数化したC言語)
プログラム例1(POSIX threadを用いたC言語 (2スレッド) )
プログラム例2(元のC言語)
プログラム例2(関数化したC言語)
プログラム例2(POSIX threadを用いたC言語 (2スレッド) )
6. キーワードのまとめ
キーワード一覧