zoukankan      html  css  js  c++  java
  • [C++] socket

    /*API事件对象实现线程同步*/
    #include<windows.h>
    #include<stdio.h>
    DWORD WINAPI myfun1(LPVOID lpParameter);//声明线程函数
    DWORD WINAPI myfun2(LPVOID lpParameter);
    static int a=0;
    HANDLE hevent;//事件对象
    int main()
    {
        HANDLE h1,h2;//定义句柄变量
        hevent=::CreateEvent(NULL,FALSE,false,NULL);
        ::SetEvent(hevent);
        h1=::CreateThread(NULL,0,myfun1,NULL,0,NULL);//创建线程1
        printf("线程1开始运行!
    ");
        h2=::CreateThread(NULL,0,myfun2,NULL,0,NULL);//创建线程2
        printf("线程2开始运行!	
    ");
        ::CloseHandle(h1);//关闭线程句柄对象
        ::CloseHandle(h2);
        ::Sleep(100000);
        return 0;
    }
    DWORD WINAPI myfun1(LPVOID lpParameter)//线程函数
    {
        while(1)
        {
            ::WaitForSingleObject(hevent,INFINITE);//请求事件对象
            ::ResetEvent(hevent);//设置事件为无信号态
            if(a<100)
            {
                ::Sleep(1000);
                a+=1;
                printf("线程1:%d
    ",a);
                ::SetEvent(hevent);//设置事件为有信号态
            }
            else
            {
                ::SetEvent(hevent);
                break;
            }
        }
        return 0;
    }
    DWORD WINAPI myfun2(LPVOID lpParameter)
    {
        while(1)
        {
            ::WaitForSingleObject(hevent,INFINITE);
            ::ResetEvent(hevent);
            if(a<100)
            {
                ::Sleep(1000);
                a+=1;
                printf("线程2:%d
    ",a);
                ::SetEvent(hevent);
            }
            else
            {
                ::SetEvent(hevent);
                break;
            }
        }
        return 0;
    }
  • 相关阅读:
    Python staticmethod
    pandas通过字典生成dataframe
    关于series的统计
    python的*args与**kwargs
    python global
    matplotlib画子图时设置总标题
    matplotlib两种画散点图的方式
    idea下web工程的编译和输出设置
    Vue&webpack入门实践
    《图解设计模式》读书笔记6-1 VISITOR模式
  • 原文地址:https://www.cnblogs.com/zjutlitao/p/3607658.html
Copyright © 2011-2022 走看看