线程是否会同时运行,取决于两个重要因素:
你的 CPU 是否拥有两个物理运算核心
你的操作系统此时正在进行怎么样的作业调度
单核 CPU 是永远无法做到两个线程同时运行的,因为他只有一个核心;
同一时刻只能运行一个线程;
其次,就算你拥有双核 CPU,可以在同一时刻运行两个线程;
但是系统内部还有很多其他程序和线程正在运行,它们也会占据 CPU 时间片段;
除非整个系统就剩下你的两个线程,否则很难出现你的进程里面两个线程都同时运行的情况;
====================================
CreateThread 创建线程之后,新的线程一般都不是马上运作的;
而是等待 CPU 分配到时间片才会开始运行;
所以,如果你想要同时启动线程,可以用 WaitForSingleObject 这样子的内核函数;
虽然可以保证线程可以同时启动,却永远无法保证线程可以同时运行;
有更详细的代码吗?
会不会是你的主线程已关闭,在CloseHandle(hThread);之前加句getchar();试试