worker thread的问题
benh 2005-12-18 04:15:34 背景:
系统有若干数据流,针对每一个数据流,每隔一定时间间隔(比如1 sec)去读取对应的统计数据,于是在每个数据流开始的时候,建立一个新的worker thread,来完成计时并且读取数据的工作。
worker thread的control function里面,用了一个while循环。判断条件是数据流对应的m_bExit是否为真。退出时,在control function外面的线程中将该数据流对应的m_bExit置为1,于是这个worker thread退出。
问题:
1. 这里,每隔一定时间间隔去读取数据,用sleep实现时间间隔,是否效率低下?sleep时候是否线程仍然占资源呢?如果是,有什么更好的办法吗?
2. 线程退出的问题。由另外线程来决定本worker thread线程的退出,直接用m_bExit是否可行?msdn里面提到,premature退出,如果是在另外的线程调用AfxEndThread 的话,就要注意线程间通信。这个线程间通信指什么? 我直接修改m_bExit会有什么问题吗?
谢谢。