windows环境下多内核开发的注意点。
原来单线程或者多线程的程序在多内核或者多CPU的硬件结构下开发需要注意的事项。
1、主要考虑的是线程的亲缘性,应当让同一个进程内的线程尽量在同一个CPU上获得调度(操作系统会搞这件事情),这样CPU不会因反复更新缓存浪费时间,因为同一个进程的线程在同一个地址空间中。这样说来,使用多线程并没有获得太大的好处,还是在同一个CPU上调度的。
2、等待函数的使用,因为多核心,所以不要怕占用过多的CPU时间片,在某些情况下应该尽量用循环察看变量值的方式处理线程的同步(使用interLockXXXXX),而不要使用等待函数进行系统调用,CPU切换进入核心态的代价是很高的,如果超过一定的循环次数再使用等待函数也不迟,所以不是长时间等待的同步不要用等待函数。
3、可以把一些多线程的设计更改为多进程的方式,多进程的方式更容易在2个CPU上同时获得调度,效率更高。