cppTweetC言語でのスレッド処理と、ロックの仕方をまとめました。別スレッドで実行する関数のポインタと、その関数に渡すデータのポインタを指定して実行するようです。スレッドによる並行処理スレッドの作成(pthread_create)Cではpthread_createを利用することで、別スレッドで任意の関数を実行できます。arg);threadスレッド管理用のpthread_t型の変数attrスレッドの属性を指定する。*)別スレッドから呼び出される関数へのポインタargstart_routineの引数として渡すデータのポインタ元のスレッドからデータを送るのに使うスレッドの終了を待つ(pthread_join)pthread_joinで、指定したスレッドが終了するまで待機することができます。**thread_return);th待機するスレッドをpthread_t型の変数で指定する**thread_returnスレッドの戻り値を格納する領域サンプルコード以下の例はグローバルな値にメインとサブの2つのスレッドから加算処理を行っています。排他制御をしていないため、スレッドによる並行処理が行われると、値がおかしくなる可能性があります。実際、何度か実行すると値がおかしくなり、並行処理が行われていることが確認できます。コンパイルする際はは-pthreadオプションを指定する必要があります。処理をロックすることができます。pthread_mutex_t型の変数はpthread_mutex_initで初期化することができます。このとき、第二引数にmutex属性を渡すことができ、NULLを渡した場合はデフォルト値が使われます。サンプルコード上記の例にロックによる排他制御を入れました。そのため、並列処理を行っても値は正しく処理されるため、何度やっても結果が正しくなります。ota42yC++/Ruby/RoR/golang/rust/flutter。