contributed by <GreenYo0413
>
append_a 這個結構,有點像是TCB,Threads們在跑得時候呢,他們會根據總共的Thread數量去拿自己應該append的欄位。
像是
threads 的數量是 4 的話
讀第 0 , 4 , 8 , 12 , …
讀第 1 , 5 , 9 , 13 , …
讀第 2 , 6 , 10 , 14 , …
讀第 3 , 7 , 11 , 15 , …
效能圖:
作者提出thread方法可以有效的降低整體執行時間,但是threads的執行順序會不固定,所以會造成有的Thread已經執行完自己的Thread了,最後則需要等其他人。
所以我提出的想法是使用pool的方式,大家使用共同的讀取指標,當取完自己的則將指標向前推一格,這樣就會變成大家同時執行結束,但是大家共同操作一個指標可能會造成不預期結果,所以需要一些Critical section的機制。