
程序的执行流程是这样的:

1、在 main 函数中调用 CreateMutex 创建一个互斥对象,因为你第二个参数传递的是 false,所以创建的该互斥对象没有被任何线程所拥有;

2、调用 for 循环创建5个线程,本身多线程就是异步的,由于系统的CPU调度不同等等因素,所以for循环执行完了并不一定这5个线程就都启动起来了,线程创建还需要申请资源什么的,所以具体这5个线程谁先启动,并不一定是按照for循环的顺序来,所以哪个线程先抢占到互斥对象的拥有权也不一样。
3、但是有一点是固定的,一旦某个线程获得到互斥对象的拥有权之后,只有在他的线程函数内部调用完ReleaseMutex释放互斥对象之后,其他的线程才有机会再次获得该互斥对象的拥有权。createmutex
综合以上,楼主该明白了吧?
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-27063-1.html
因为她
本来伊拉克人民有和平的生活