ソフトウェア設計及び演習2017
マルチスレッド
マルチスレッド
変数を共有して別々に動くプログラムのことで,軽量プロセスとも呼ばれる.
制御の流れを 複数 作ることが可能.
本家のThreadマニュアル
簡単なプログラムが リポジトリ にある
排他制御
複数のスレッド間では大域変数を共有する
排他的な操作のために下記を利用する
- 共有ロック
- gtk/gdk処理の排他制御
排他制御(排他的にラベルのテキストを書き換える)
- 乱数時間まって,
- ロックをかけて,
- 危険領域に入り, gdk_threads_enter()
- 「排他的に行う処理」を行い
- gdk_flushで描画処理を終え,
- 危険領域を抜け,gdk_threads_leave()
- ロックを外す
sleep(g_random_int_range (1, 4)); G_LOCK(window_access); gdk_threads_enter(); gtk_label_set_text(GTK_LABEL(label), args); gdk_flush (); gdk_threads_leave(); G_UNLOCK(window_access);
最終更新日:2017/04/03 09:14:18