当前位置: 首页 > wzjs >正文

国内做的好看的网站持续优化疫情防控举措

国内做的好看的网站,持续优化疫情防控举措,阳江市政府问政平台,什么是网站版面布局提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、作业job是什么?二、使用步骤1.代码示例 总结 前言 提示:这里可以添加本文要记录的大概内容: winapi网站: h…

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、作业job是什么?
  • 二、使用步骤
    • 1.代码示例
  • 总结


前言

提示:这里可以添加本文要记录的大概内容:
winapi网站:
https://learn.microsoft.com/en-us/windows/win32/api/


提示:以下是本篇文章正文内容,下面案例可供参考

一、作业job是什么?

作业(Job)基本概念
Windows作业(Job)对象是一种进程管理机制,允许将一组进程作为单个单元进行管理。它主要用于:

限制进程资源使用(CPU/内存等)
控制进程安全性
确保进程树同步终止
监控进程运行状态

作业job可以看作是进程池

核心API函数

#include <windows.h>
#include <stdio.h>
主要API:
CreateJobObject - 创建作业对象
AssignProcessToJobObject - 将进程分配到作业
SetInformationJobObject - 设置作业限制
TerminateJobObject - 终止作业内所有进程
IsProcessInJob 判断是否已加入job

WINBASEAPI
HANDLE
WINAPI
CreateJobObjectW(_In_opt_ LPSECURITY_ATTRIBUTES lpJobAttributes, //安全属性_In_opt_ LPCWSTR lpName	//名字);WINBASEAPI
BOOL
WINAPI
SetInformationJobObject(_In_ HANDLE hJob,	//句柄_In_ JOBOBJECTINFOCLASS JobObjectInformationClass, 	//job限制枚举定义_In_reads_bytes_(cbJobObjectInformationLength) LPVOID lpJobObjectInformation, //作业限制结构_In_ DWORD cbJobObjectInformationLength //作业限制结构长度);WINBASEAPI
BOOL
WINAPI
IsProcessInJob(_In_ HANDLE ProcessHandle,_In_opt_ HANDLE JobHandle,_Out_ PBOOL Result);
WINBASEAPI
BOOL
WINAPI
AssignProcessToJobObject(_In_ HANDLE hJob,_In_ HANDLE hProcess);WINBASEAPI
BOOL
WINAPI
TerminateJobObject(_In_ HANDLE hJob,_In_ UINT uExitCode);WINBASEAPI
BOOL
WINAPI
SetInformationJobObject(_In_ HANDLE hJob,_In_ JOBOBJECTINFOCLASS JobObjectInformationClass,_In_reads_bytes_(cbJobObjectInformationLength) LPVOID lpJobObjectInformation,_In_ DWORD cbJobObjectInformationLength);

实际应用场景
批量任务管理:同时启动/终止一组相关进程
资源隔离:防止子进程消耗过多系统资源
安全沙箱:限制进程的操作能力
服务管理:确保服务进程及其子进程同步管理

注意事项
进程一旦加入作业就无法移除
作业内的进程创建的子进程会自动加入同一作业
需要Windows 2000及以上系统支持
调试时需注意作业限制可能导致进程异常终止

二、使用步骤

1.代码示例

代码如下(示例):

#include <windows.h>
#include <stdio.h>
#include <iostream>
#include <tchar.h>int main()
{std::cout << "Hello World!\n";HANDLE hJob;JOBOBJECT_EXTENDED_LIMIT_INFORMATION jobInfo = { 0 };hJob = CreateJobObject(NULL, TEXT("MySampleJob"));if (hJob == NULL) {printf("CreateJobObject failed (%d)\n", GetLastError());return -1;}// 2. 设置作业限制(此处限制内存为100MB)jobInfo.BasicLimitInformation.LimitFlags = JOB_OBJECT_LIMIT_PROCESS_MEMORY;jobInfo.ProcessMemoryLimit = 100 * 1024 * 1024; // 100MB if (!SetInformationJobObject(hJob,JobObjectExtendedLimitInformation,&jobInfo,sizeof(jobInfo))) {printf("SetInformationJobObject failed (%d)\n", GetLastError());CloseHandle(hJob);return -1;}// 3. 创建进程并分配到作业 STARTUPINFO si = { sizeof(si) };PROCESS_INFORMATION pi;wchar_t cmdLine[] = L"notepad.exe";if (!CreateProcess(NULL,cmdLine,NULL,NULL,FALSE,CREATE_SUSPENDED,NULL,NULL,&si,&pi)) {printf("CreateProcess failed (%d)\n", GetLastError());CloseHandle(hJob);return -1;}// 4. 分配进程到作业 if (!AssignProcessToJobObject(hJob, pi.hProcess)) {printf("AssignProcessToJobObject failed (%d)\n", GetLastError());TerminateProcess(pi.hProcess, 0);CloseHandle(pi.hProcess);CloseHandle(pi.hThread);CloseHandle(hJob);return -1;}// 5. 恢复进程执行 ResumeThread(pi.hThread);printf("Job created successfully with process ID: %d\n", pi.dwProcessId);// 清理句柄 CloseHandle(pi.hProcess);CloseHandle(pi.hThread);CloseHandle(hJob);return 0;
}

总结

介绍了windows下作业job的基础概念和使用。

http://www.dtcms.com/wzjs/406494.html

相关文章:

  • b2c网站的后台管理功能包括seo快速优化报价
  • 帮人做网站犯法百度扫一扫
  • 杭州网站建设宣盟网络seo常规优化
  • 烟台做网站企业全球网站流量排名查询
  • 正在建设中网站兰州网站seo诊断
  • 做日语字幕的网站丁的老头seo博客
  • 个人求职网站设计广告公司网站制作
  • 网站做关键词排行一个月多少钱先做后付费的代运营
  • 国外网站做网上生意哪个好网络舆情管理
  • 扬中零壹网站建设百度竞价是什么意思
  • 广州做网站建设的公司淘大象关键词排名查询
  • 淘宝网网页版入口关键词排名关键词优化
  • 长安网站建设费用互联网营销师培训内容
  • 网站建设需要注意哪些问题品牌推广宣传词
  • 网站关键词google优化怎么做让顾客心动的句子
  • 家具网站建设方案百度自动点击器怎么用
  • 导航网站怎么推广新媒体营销推广方案
  • 德国网站建设郑州网站关键词排名技术代理
  • app网站建设制作网站平台
  • pc网站制作常见的网络营销方法
  • 青白江网站建设打开百度app
  • 浙江杭州网站建设服务公司哪家好搜狗网页
  • 云南疫情上海优化排名网站
  • 做百度推广网站被攻击什么是sem
  • 网站建设电商代运营seo指的是搜索引擎营销
  • 固始做网站百度竞价点击工具
  • wordpress怎么分类分栏seo能干一辈子吗
  • 网站建设网店名字朋友圈广告投放平台
  • 广东公司响应式网站建设报价2022年传销最新消息
  • 网站经营网络备案信息管理系统项目营销推广方案