使用先進先出隊列,異步線程寫入數據。
在調用者和文件系統中間有一層緩存,調用者將數據傳入寫入函數,寫入函數則先寫入緩存,再將數據放入線程隊列,線程從隊列最前面取出數據寫入文件系統。
而讀出時,則先從緩存讀取,如果沒有則直接從文件系統中讀出,並且放入緩存。
這樣的好處:
1.GUI線程並不被影響,由於IO操作都是異步的。
2.不需要互鎖,由於IO是單線程操作,使用先進先出隊列,所以不需要互鎖,沒有死鎖的危險,但是這樣IO寫入的性能並不好。
3.緩存可以提高性能,由於寫入和讀出都不是直接IO操作,而是通過緩存,所以性能上會有提高,但是緩存可能會帶來內存的佔用,這一點要可調。