经验教训:
1.windows下定时器属于多线程范畴。具体情况没研究过,从网络上的资料和自己调试的直觉来说,定时器有专用的定时器线程来执行定时器回调函数,所以使用定时器必须考虑到线程同步互斥问题。
2.能避免多线程尽量避免多线程,当然,有一个辅助的线程也是允许的。一般情况下,如果一个好的设计能够避免使用线程,那么这个项目优势就大大的存在,至少稳定性就非常好,而且调试方便。
3.不要因为项目简单就不考虑日志模块~谁知道项目会发展成多大呢?
4.最好有单元测试。每个基本的小模块都应该留有简单的测试程序,方便以后修改补充代码后保持系统的代码可靠性。
5.windows下锁的单位是线程,如果同一个线程多次请求同一个锁,是可以的,即多次调用WaitForSingleObject获取同一个锁是很有可能成功的。
6.网络编程中,socket函数的返回值一定要处理。
1.windows下定时器属于多线程范畴。具体情况没研究过,从网络上的资料和自己调试的直觉来说,定时器有专用的定时器线程来执行定时器回调函数,所以使用定时器必须考虑到线程同步互斥问题。
2.能避免多线程尽量避免多线程,当然,有一个辅助的线程也是允许的。一般情况下,如果一个好的设计能够避免使用线程,那么这个项目优势就大大的存在,至少稳定性就非常好,而且调试方便。
3.不要因为项目简单就不考虑日志模块~谁知道项目会发展成多大呢?
4.最好有单元测试。每个基本的小模块都应该留有简单的测试程序,方便以后修改补充代码后保持系统的代码可靠性。
5.windows下锁的单位是线程,如果同一个线程多次请求同一个锁,是可以的,即多次调用WaitForSingleObject获取同一个锁是很有可能成功的。
6.网络编程中,socket函数的返回值一定要处理。
本文总结了Windows环境下多线程编程的经验教训,包括定时器使用、线程同步互斥、日志模块的重要性、单元测试的必要性和锁机制的应用。详细探讨了如何避免不必要的线程开销,提高项目稳定性和调试便利性。
792

被折叠的 条评论
为什么被折叠?



