pthreadsでマルチスレッドを学んでいく

概要

マルチスレッドプログラミングについて体系的に学んだことがなかった。普段触れる言語はPythonC++がメインで、マルチスレッドに出会うのは物体検出モデルの著者実装のスクリプトくらいという状態で、マルチスレッドにはあまり縁が無かった。しかしマルチスレッドプログラミングはあらゆるところで使われているはずで、一度体系的に学んでおきたかった。組み込み系にも興味があったため、C言語のマルチスレッドプログラミングをサポートするライブラリであるpthreadsを用いて勉強することにした。

 

内容

Linuxとpthreadsによるマルチスレッドプログラミング入門』という本を用いた。これはとある勉強会の内容をそのまま本に落とし込んだような本で、実習形式になっており、マルチスレッドの基礎+pthreadsの使い方を元にコマンドラインアプリを作ろうというものだ。

www.shuwasystem.co.jp

 

作ったプログラムは「マルチスレッドセーフなQueue」である。また、これを使ってTerminal上で点を支持した地点に動かすアプリを作った。

f:id:Riguo:20210607215244p:plain

 Destination?に対して目的地の座標(y, x)を入力すると、点がそこへ向かう。スレッドセーフなキューを用いているため点が動いている途中でも目的地を入力することができる。

f:id:Riguo:20210607215335p:plain

 

 

コードはこちら↓

github.com

 

詳細はREADMEへ。