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

创意网站页面/b2b网站大全免费

创意网站页面,b2b网站大全免费,wordpress赞的功能,张家港网站推广优化需求: 软件功能用多进程实现, 由主进程创建若干子进程, 当主进程崩溃时,创建出来的子进程需要能够自动关闭。 方法1: 进程通信,子进程检查心跳包,一段时间没心跳包则退出进程。 缺点: 1.实现起来麻烦。 2.不支持第…

需求:

软件功能用多进程实现, 由主进程创建若干子进程, 当主进程崩溃时,创建出来的子进程需要能够自动关闭。

方法1:

进程通信,子进程检查心跳包,一段时间没心跳包则退出进程。

缺点:

1.实现起来麻烦。

2.不支持第三方的程序,因为别人并未实现这些心跳机制。

3.依然存在可能程序有BUG, 子进程卡死不退出的现象。

方法2:

通过作业对象(Job Object来实现), 作业对象是Windows系统提供的对加入作业的进程做特定限制的内核对象,可以对作业中的进程组统一做时间片分配,网络,CPU亲缘性设置等。并且可以设置JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE标志,当作业对象释放,回收时(包括主进程崩溃),由操作系统来保证子进程结束。

相关API:

// 创建作业对象
HANDLE CreateJobObjectA([in, optional] LPSECURITY_ATTRIBUTES lpJobAttributes,[in, optional] LPCSTR                lpName
);// 把进程加入作业。
BOOL AssignProcessToJobObject([in] HANDLE hJob,[in] HANDLE hProcess
);// 设置作业的限制内容
BOOL SetInformationJobObject([in] HANDLE             hJob,[in] JOBOBJECTINFOCLASS JobObjectInformationClass,[in] LPVOID             lpJobObjectInformation,[in] DWORD              cbJobObjectInformationLength
);// 查询作业的限制内容。
BOOL QueryInformationJobObject([in, optional]  HANDLE             hJob,[in]            JOBOBJECTINFOCLASS JobObjectInformationClass,[out]           LPVOID             lpJobObjectInformation,[in]            DWORD              cbJobObjectInformationLength,[out, optional] LPDWORD            lpReturnLength
);

实现代码:

//=========================     创建进程     ============================//
char Proc_Path[] = "notepad.exe"; // 进程路径STARTUPINFOA startup_info;
memset(&startup_info, 0x0, sizeof(startup_info));
startup_info.cb = sizeof(startup_info);
startup_info.wShowWindow = SW_SHOW;PROCESS_INFORMATION proc_info;
memset(&proc_info, 0x0, sizeof(proc_info));
BOOL create_ok = CreateProcessA(NULL, Proc_Path, NULL, NULL, TRUE, CREATE_NEW_CONSOLE, NULL, NULL, &startup_info, &proc_info
);
//------------------------------------------------------------------------//HANDLE job_handle = CreateJobObject(NULL, NULL); // 创建Job对象
BOOL add_job_ok = AssignProcessToJobObject(job_handle, proc_info.hProcess); // 把进程加入Job//===========    设置Job对象回收, 所有相关进程自动退出   ============//
JOBOBJECT_EXTENDED_LIMIT_INFORMATION limit_info;
memset(&limit_info, 0x0, sizeof(limit_info));
limit_info.BasicLimitInformation.LimitFlags = JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE; // job句柄回收时,所有加入job的进程都会强制结束。
BOOL set_auto_kill_ok = SetInformationJobObject(job_handle, JobObjectExtendedLimitInformation, &limit_info, sizeof(limit_info)
);
//-----------------------------------------------------------------///*释放job对象, 调用后,所有相关进程都会退出。假如程序崩溃没调用释放, 由系统回收,也能达到结束所有相关进程的效果。 在多进程系统中,这个特性必用,应对出现僵尸子进程的现象。
*/
CloseHandle(job_handle); 

http://www.jmfq.cn/news/4935907.html

相关文章:

  • 云南网站制作怎么计费/武汉seo管理
  • 济南信息化网站/漳州seo网站快速排名
  • 南阳锐诚网站建设/软文营销文章范文
  • 魔方建站/口碑营销的案例及分析
  • 自己做网站用什么数据库/汕头seo网站推广
  • 中国印花图案设计网站/百度seo排名优化软件分类
  • 潍坊专业网站建设最新报价/安徽网站优化
  • 做网站都需要哪些信息/全球搜怎么样
  • 有一个私人做慈善的网站/百度seo关键词工具
  • 建设银行的网站用户名是什么意思/公司推广方案
  • 网站建设技术入股合同/市场推广方案和思路
  • 无锡网站建设价格/品牌如何做推广
  • 建设 静态网站/哪些广告平台留号码
  • 公司建设一个网站需要多少钱/网推渠道
  • 网页美工设计图片/淘宝seo优化是什么
  • 大连企业网站模板/智能建站平台
  • 做网站参考文献/网站广告投放收费标准
  • 外卖网站怎么做/关键词挖掘方法
  • 网站建设的五类成员/珠海网站设计
  • 温州企业建站系统模板/郑州百度推广代运营
  • 重庆哪里做网站/短视频精准获客系统
  • 东莞常平学校网站建设/惠州seo公司
  • 企业做网站可以带中国吗/河源疫情最新通报
  • c#做asp.net网站/微信推广多少钱一次
  • 华为网站推广策略/东莞优化排名公司
  • 扁平化网站布局/南宁seo规则
  • 临淄网站制作首选专家/seo是干嘛的
  • wordpress上传突然提示需要ftp/app排名优化公司
  • 网站开发与运营/最近一周新闻大事摘抄
  • 海安网站设计公司/免费个人主页网站