Sudoku拼圖使用9×9網格,其中每列和行以及9個3×3子網格中的每一個都必須包含所有數字1···9。
該項目包括設計一個多線程應用程序,該應用程序確定了Sudoku拼圖的解決方案是否有效。
線程是CPU利用率的基本單元。它包括線程ID,程序計數器,寄存器集和堆棧。它與屬於同一過程的其他線程共享其代碼部分,數據部分和其他操作系統資源,例如打開文件和信號。
sudoku_validator_naive.c
是Sudoku驗證器的幼稚實現。在這裡,我們檢查所有3個條件是否有效串行。
sudoku_validator.c
創建了3個線程,用於檢查每個條件。它利用了Pthreads庫,該庫是一個POSIX標準,該標准定義了UNIX和其他幾個操作系統支持的線程創建和同步的API。
為了明顯地查看結果,我們使用unistd.h
中定義的sleep()
函數。檢查每個條件後,我們暫停程序的執行5秒鐘。
由於程序串行運行,並且每個功能都睡5秒鐘,因此執行時間約為15秒。
由於條件彼此平行,並且每個功能都睡5秒鐘,因此執行時間僅為5秒。