关于同一线程两次调用EnterCriticalSection的测试

简介:
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <windows.h>
#include <process.h>
CRITICAL_SECTION cs;

//1.测试同一线程两次EnterCriticalSection会不会阻塞
//答案:不会
/*
int _tmain(int argc, _TCHAR* argv[])
{
    InitializeCriticalSection(&cs);
    EnterCriticalSection(&cs);
    EnterCriticalSection(&cs);
    for(int i = 0;i < 20;i++)
    {
        cout<<"MainThread:"<<i<<endl;
        Sleep(1000);
    }
    LeaveCriticalSection(&cs);
    DeleteCriticalSection(&cs);
    system("pause");
    return 0;
}
*/


//2.测试同一线程两次EnterCriticalSection,调用一次LeaveCriticalSection 另一个线程是否可以以EnterCriticalSection
//答案:不可以 两次EnterCriticalSection 必须调用 LeaveCriticalSection两次
unsigned  __stdcall ThreadPorc ( void * )
{
    for(int i = 0;i<20;i++)
    {
        EnterCriticalSection(&cs);
        cout<<"线程2进入"<<endl;
        break;
        LeaveCriticalSection(&cs);
        Sleep(1000);
    }
    return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
    InitializeCriticalSection(&cs);
    EnterCriticalSection(&cs);
    EnterCriticalSection(&cs);
    _beginthreadex(NULL,0,ThreadPorc,NULL,0,NULL);
    for(int i = 0;i < 20;i++)
    {
        if(i == 10)
        {
            LeaveCriticalSection(&cs);
        }
        cout<<"MainThread:"<<i<<endl;
        Sleep(1000);
    }
    LeaveCriticalSection(&cs);
    Sleep(5000);
    DeleteCriticalSection(&cs);
    system("pause");
    return 0;
}
复制代码

 

相关文章
|
索引 Python
python 线程 ~~ ~~~为面试开辟VIP通道~~~~~测试、死锁、全局变量共享、守护主线程等。。。。。。(2)
python 线程 ~~ ~~~为面试开辟VIP通道~~~~~测试、死锁、全局变量共享、守护主线程等。。。。。。(2)
120 0
python 线程 ~~ ~~~为面试开辟VIP通道~~~~~测试、死锁、全局变量共享、守护主线程等。。。。。。(2)
|
存储 JSON 资源调度
python 线程 ~~ ~~~为面试开辟VIP通道~~~~~测试、死锁、全局变量共享、守护主线程等。。。。。。(1)
线程(英语:thread)是操作系统能够进行运算调度的最小单位。线程很重要,通过本篇文章可以让你们很好的了解线程的传参、线程执行规则、守护主线程、线程间共享全局变量、进程互斥锁、死锁进程怎么解决。希望对你们有所帮助。
203 0
python 线程 ~~ ~~~为面试开辟VIP通道~~~~~测试、死锁、全局变量共享、守护主线程等。。。。。。(1)
java94-cpu随机调用线程测试
java94-cpu随机调用线程测试
191 0
java94-cpu随机调用线程测试
|
Java 测试技术 Maven
ThreadPoolExecutor使用测试3-测试在全部任务终止后,再次向线程池提交任务
ThreadPoolExecutor使用测试3-测试在全部任务终止后,再次向线程池提交任务
185 0
|
Java 测试技术 Maven
ThreadPoolExecutor使用测试2-线程数量达到maximumSize
ThreadPoolExecutor使用测试2-线程数量达到maximumSize
136 0
|
Java Maven
ThreadPoolExectutor使用测试1-线程数量不超过coreSize大小
ThreadPoolExectutor使用测试1-线程数量不超过coreSize大小
213 0
|
7天前
|
测试技术 C语言
网站压力测试工具Siege图文详解
网站压力测试工具Siege图文详解
16 0
|
29天前
|
JavaScript jenkins 测试技术
这10款性能测试工具,收藏起来,测试人的工具箱!
这10款性能测试工具,收藏起来,测试人的工具箱!
|
1月前
|
人工智能 监控 测试技术
利用AI辅助工具提升软件测试效率
【2月更文挑战第17天】 随着科技的不断发展,人工智能(AI)在各个领域的应用越来越广泛。在软件测试领域,AI技术也发挥着重要作用。本文将探讨如何利用AI辅助工具提升软件测试效率,包括自动化测试、智能缺陷识别和预测等方面。通过引入AI技术,软件测试过程将变得更加高效、准确和可靠。
148 1
|
1月前
|
Web App开发 前端开发 测试技术
探索自动化测试工具:Selenium的威力与应用
探索自动化测试工具:Selenium的威力与应用
探索自动化测试工具:Selenium的威力与应用

热门文章

最新文章