多线程-6

线程的ID和互斥对象计数器

void main()

{
    HANDLE hThread1;//线程的句柄
    HANDLE hThread2;
    hThread1=CreateThread(NULL,0,Fun1Proc,NULL,0,NULL);
    hThread2=CreateThread(NULL,0,Fun2Proc,NULL,0,NULL);
    CloseHandle(hThread1);//关闭句柄,并没有终止线程,表示主线程中对该句柄不感兴趣。
                          //当关闭句柄的时候,会递减新线程的线程内核对象的使用计数,
                          //线程执行完毕后,也会递减使用计数
                          //当使用计数为0时,系统会释放线程内核对象
    CloseHandle(hThread2);
    hMutex=CreateMutex(NULL,FALSE,NULL);//创建一个匿名的互斥对象.False 没有线程拥有该互斥对象,

                               //操作系统会将该互斥对象设为已通知状态,即有信号状态

    WaitForSingleObject(hMutex,INFINITE);//同一个mian主线程中,hMutex又加1,变成了2

    ReleaseMutex(hMutex);

    ReleaseMutex(hMutex);//得释放两次,才能使hMutex的ID变成0,才能使“多线程-5”中的两个线程请求到互斥对象

    Sleep(4000);//主线程放弃执行权力,进入等待状态
}
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 博客之星2020 设计师:CY__ 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值