2020年6月5日

[C++] Easy Way to Apply Producer-Consumer Parallelism

事情是這樣的,最近接到要把原本的架構套用 producer-consumer 的方式:一條 thread 產生資料、另一條 thread 處理資料 (當然,這邊只是為了方便討論所以都先假定各一條 thread),以此增加平行度。不過雖然這種方式很常見,要在原本沒有規劃的程式上套用起來還是會改動不少地方,而且為了讓處理邏輯比較獨立、清晰,就想了個方法讓這些改動可以儘可能的集中、且只需要儘可能少的修改現有邏輯。最後最重要的是:想要撤銷 producer-consumer 變回原本 sequential 的架構時也儘可能的簡單,換句話說:能輕易套用不同的資料處理模式