线程池面试题_动态线程池

线程池面试题_动态线程池线程池QueueUserWorkItem

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

  1. // Test1.cpp : Defines the entry point for the console application.  
  2. //  
  3.   
  4. #include “stdafx.h”  
  5. #include <assert.h>  
  6. #include <Windows.h>  
  7.   
  8. DWORD WINAPI TestThreadPool(PVOID pContext);  
  9.   
  10. CRITICAL_SECTION g_cs;  
  11.   
  12. int _tmain(int argc, _TCHAR* argv[])  
  13. {  
  14.     InitializeCriticalSection(&g_cs);  
  15.     SECURITY_ATTRIBUTES sa;  
  16.     sa.bInheritHandle = TRUE;  
  17.     sa.nLength = sizeof(SECURITY_ATTRIBUTES);  
  18.     sa.lpSecurityDescriptor = NULL;  
  19.   
  20.     HANDLE hSemaphore = CreateSemaphoreW(&sa, 0 ,1, L“jyytet”);   
  21.   
  22.     for (int i = 0; i < 10; i++)  
  23.     {  
  24.         QueueUserWorkItem(TestThreadPool, L“Hello World”, WT_EXECUTEDEFAULT);  
  25.     }  
  26.     QueueUserWorkItem(TestThreadPool, L“Finish”, WT_EXECUTEDEFAULT);  
  27.   
  28.     WaitForSingleObject(hSemaphore, -1);  
  29.     CloseHandle(hSemaphore);  
  30.     hSemaphore = NULL;   
  31.     DeleteCriticalSection(&g_cs);  
  32.   
  33.     wprintf(L“Game over /r/n”);  
  34.   
  35.     getchar();  
  36.   
  37.     return 0;  
  38. }  
  39.   
  40. DWORD WINAPI TestThreadPool(PVOID pContext)  
  41. {  
  42.     if (NULL == pContext)  
  43.         return 0;  
  44.   
  45.     EnterCriticalSection(&g_cs);  
  46.     wchar_t *pPrintf = (wchar_t *) pContext;  
  47.     wprintf(L“%s /r/n”, pPrintf);  
  48.     Sleep(1000);  
  49.   
  50.     if (wcscmp(pPrintf, L“Finish”) == 0)  
  51.     {  
  52.         HANDLE hSemaphore = OpenSemaphoreW(SEMAPHORE_ALL_ACCESS, FALSE,  L“jyytet”);  
  53.         assert(hSemaphore !=  NULL);  
  54.         ReleaseSemaphore(hSemaphore, 1, NULL);  
  55.         CloseHandle(hSemaphore);  
  56.     }  
  57.     LeaveCriticalSection(&g_cs);  
  58.   
  59.     return 1;  
  60. }  

// Test1.cpp : Defines the entry point for the console application.//#include “stdafx.h”#include <assert.h>#include <Windows.h>DWORD WINAPI TestThreadPool(PVOID pContext);CRITICAL_SECTION g_cs;int _tmain(int argc, _TCHAR* argv[]){ InitializeCriticalSection(&g_cs); SECURITY_ATTRIBUTES sa; sa.bInheritHandle = TRUE; sa.nLength = sizeof(SECURITY_ATTRIBUTES); sa.lpSecurityDescriptor = NULL; HANDLE hSemaphore = CreateSemaphoreW(&sa, 0 ,1, L”jyytet”);  for (int i = 0; i < 10; i++) {  QueueUserWorkItem(TestThreadPool, L”Hello World”, WT_EXECUTEDEFAULT); } QueueUserWorkItem(TestThreadPool, L”Finish”, WT_EXECUTEDEFAULT); WaitForSingleObject(hSemaphore, -1); CloseHandle(hSemaphore); hSemaphore = NULL;  DeleteCriticalSection(&g_cs); wprintf(L”Game over /r/n”); getchar(); return 0;}DWORD WINAPI TestThreadPool(PVOID pContext){ if (NULL == pContext)  return 0; EnterCriticalSection(&g_cs); wchar_t *pPrintf = (wchar_t *) pContext; wprintf(L”%s /r/n”, pPrintf); Sleep(1000); if (wcscmp(pPrintf, L”Finish”) == 0) {  HANDLE hSemaphore = OpenSemaphoreW(SEMAPHORE_ALL_ACCESS, FALSE,  L”jyytet”);  assert(hSemaphore !=  NULL);  ReleaseSemaphore(hSemaphore, 1, NULL);  CloseHandle(hSemaphore); } LeaveCriticalSection(&g_cs); return 1;}

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189677.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ES6中的模板字符串改变html_vue事件绑定修饰符

    ES6中的模板字符串改变html_vue事件绑定修饰符step1:模板字符传中写法renderDom(){return`<divdata-action=”goDetail”data-url=”${item.clickUrl}”class=”uliao-news-item”><h1>${item.title}</h1>&…

    2022年8月21日
    26
  • Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包

    Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包&gt;&gt;&gt;&gt;&gt;©Copyright 蕃薯耀2017年3月6日http://fanshuyao.iteye.com/ 一、Linux快速部署War包操作,暂时是最简单的操作1、先关闭Tomcat/home/java/tomcat7/bin/shutdown.sh 2、进入War包存放目录(可以通过工具:SSHSecureShellClient把War传到Linux服务器)cd/home/projec

    2022年5月29日
    38
  • Windows使用Vagrant&VirtualBox搭建虚拟开发环境

    Windows使用Vagrant&VirtualBox搭建虚拟开发环境

    2022年2月8日
    37
  • vdbench使用

    vdbench使用简介vdbench是一个I/O工作负载生成器,用于验证数据完整性和度量直接附加和网络连接的存储的性能。它是一个免费的工具,容易使用,而且常常用于测试和基准测试。可以使用vdbench测试磁盘和文件系统的读写性能。名词解释vdbench中常用的一些名词解释:HD主机定义SD存储定义WD工作负载定义RD运行定义FSD文件系统存储定义FWD文件工作负载定义安装和配置linux下配置vdbench(1)下载Vdbench…

    2022年5月12日
    295
  • Qt Creator下载和安装(详细教程)

    Qt Creator下载和安装(详细教程)简介Qt是跨平台的图形开发库,目前由Digia全资子公司QtCompany独立运营,官方网址:http://www.qt.io/也可以访问Qt项目域名:http://qt-project.org/Qt本身支持众多操作系统。从通用操作系统Linux、Windows,到手机系统Android、iOS、WinPhone,嵌入式系统支持QNX、VxWorks,应用非常广泛。基于Qt的

    2022年5月13日
    50
  • 初识CDN加速

    初识CDN加速

    2021年8月21日
    62

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号