zoukankan      html  css  js  c++  java
  • 进程死锁模拟

    #include <stdio.h>
    #include <windows.h>
    
    
    int tickets=30;
    /*临界区对象*/
    CRITICAL_SECTION g_csA,g_csB;
    /*线程数据信息*/
    DWORD WINAPI Fun1Proc(LPVOID lpParameter)
    {
        while(1)
        {
            /*进入临界区*/
            EnterCriticalSection(&g_csA);
            Sleep(1);
            if(tickets>0)
            {
                EnterCriticalSection(&g_csB);
                Sleep(1);
                printf("thread1 sell ticket:%d\n",tickets--);
                /*离开临界区*/
                LeaveCriticalSection(&g_csA);
            }
            else
            {
                LeaveCriticalSection(&g_csA);
                break;
            }
        }
        return 0;
    }
    
    DWORD WINAPI Fun2Proc(LPVOID lpParameter)
    {
        while(1)
        {
            EnterCriticalSection(&g_csB);
            Sleep(1);
            if(tickets>0)
            {
                EnterCriticalSection(&g_csA);
                Sleep(1);
                printf("thread2 sell ticket:%d\n",tickets--);
                LeaveCriticalSection(&g_csB);
            }
            else
            {
                LeaveCriticalSection(&g_csB);
                break;
            }
        }
        return 0;
    }
    
    int main()
    {
        HANDLE hThread1,hThread2;
        /*创建线程*/
        hThread1=CreateThread(NULL,0,Fun1Proc,NULL,0,NULL);
        hThread2=CreateThread(NULL,0,Fun2Proc,NULL,0,NULL);
        CloseHandle(hThread1);
        CloseHandle(hThread2);
        /*创建临界区对象*/
        InitializeCriticalSection(&g_csA);
        InitializeCriticalSection(&g_csB);
        Sleep(1000);
        /*释放临界区对象资源*/
        DeleteCriticalSection(&g_csA);
        return 0;
    }
  • 相关阅读:
    SIMPLE QUERY几个原则
    [POI2014]DOO-Around the world
    Java 实现 蓝桥杯 历届试题 分糖果
    or小计
    luoguP1357 花园
    like小计
    [NOI2016]区间
    complex query几个原则
    AGC 018E.Sightseeing Plan——网格路径问题观止
    排查一般MySQL性能问题
  • 原文地址:https://www.cnblogs.com/NoSoul/p/2552255.html
Copyright © 2011-2022 走看看