使用多线程和MUTEX锁,从硬盘中读取文件,保存到缓存LIST中。 利用MUTEX锁,防止出现对LIST的读存错误。其他程序可以调用 getData()来从缓存中批量获取数据,提高IO的效率。类似生产者—消费者模式。 //FileData.h #ifndef _FILEDATA_H #define _FILEDATA_H #include <iostream> #include <string> #include <fstream> #include <list> #include <windows.h> #include <process.h> using namespace std; typedef void wthread; typedef void wmutex; #define COUNT 20 class FileData { public: FileData(string fileName); ~FileData(); list<int> getData(); void setFileName(string fileName); string getFileName(); bool start(); bool stop(); static unsigned int WINAPI threadProcess(void * parameter); void lock(){WaitForSingleObject(m_mutex, INFINITE);} void unlock(){ReleaseMutex(m_mutex);} private: FileData(); bool m_bStart; string m_fileName; ifstream m_fileStream;