很多人一上来就写multi-thread的程序,不管是不是真的需要。至少在单核的Windows机器上,多线程的程序引起的系统开销是很大的。你每创建一个thread,系统就得调用该process里面所有DLL的DllMain()一遍。系统每一次thread切换,该休息的thread的数据(kernel object,stack --- user mode and kernel mode)都得保存,由此引起的内存page fault和相应的disk I/O是很惊人的。还不提你得花在线程同步上的功夫和效果。所以要慎用。