鱼C论坛

 找回密码
 立即注册
查看: 2651|回复: 0

内核模式下的同步对象

[复制链接]
发表于 2015-4-2 18:48:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
内核模式下面的同步对象有信号灯、互斥体、事件。用户模式和内核模式基本差不多。现在列举用户模式的互斥体的使用方式:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <process.h>
#include <stddef.h>

UINT WINAPI Thead1(LPVOID para)
{
        HANDLE *phMutex = (HANDLE*)para;
        //得到互斥体
        WaitForSingleObject(phMutex,INFINITE);
        printf("Enter thead1\n");
        //Sleep(2000);
        printf("Leave thead1\n");

        ReleaseMutex(*phMutex);
        return 0;
}
UINT WINAPI Thead2(LPVOID para)
{
        HANDLE *phMutex = (HANDLE*)para;
        //得到互斥体
        WaitForSingleObject(phMutex,INFINITE);
        printf("Enter thead2\n");
        //Sleep(2000);
        printf("Leave thead2\n");

        ReleaseMutex(*phMutex);
        return 0;
}

int main()
{
        //创建一个同步事件
        HANDLE hMutex = CreateMutex(NULL,FALSE,NULL);

        //开启新线程,并且将同步的事件句柄传递给新县城
        HANDLE hThead1 = (HANDLE)_beginthreadex(NULL,0,Thead1,&hMutex,0,NULL);
        HANDLE hThead2 = (HANDLE)_beginthreadex(NULL,0,Thead2,&hMutex,0,NULL);

        Sleep(2000);
        return 0;
}


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 10:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表