Sudoku Puzzleは、9×9のグリッドを使用します。このグリッドでは、各列と行、および9つの3×3サブグリッドのそれぞれに、すべての数字1のすべてを含める必要があります。
このプロジェクトは、数独パズルの解決策が有効かどうかを決定するマルチスレッドアプリケーションを設計することで構成されています。
スレッドは、CPU使用率の基本単位です。スレッドID、プログラムカウンター、レジスタセット、スタックで構成されています。コードセクション、データセクション、およびオープンファイルや信号などの他の運用システムリソースに属する他のスレッドと共有します。
sudoku_validator_naive.c
sudokuバリデーターの素朴な実装です。ここでは、3つの条件すべてが有効なSudokuを連続的に確認します。
sudoku_validator.c
、各条件を並行してチェックするための3つのスレッドを作成します。 UNIXや他のいくつかのオペレーティングシステムでサポートされているスレッドの作成と同期のAPIを定義するPOSIX標準であるPthreadsライブラリを使用しています。
結果を目に見えるように見るために、 unistd.h
で定義されているsleep()
関数を使用します。各条件を確認した後、プログラムの実行を5秒間一時停止します。
プログラムは連続して実行され、各機能が5秒間眠るため、実行時間は約15秒です。
条件は互いに平行に動作し、各機能が5秒間眠るため、実行時間は約5秒のみです。