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

【Linux】多进程任务模块

创建多个进程,同时完成任务

task.c

#include <sys/types.h>
#include <unistd.h>
#include<stdio.h>
#include <sys/wait.h>
int create_process_tasks(Task_fun_t tasks[],int tsak_cnt)
{pid_t pid;int i = 0;for(i = 0;i < 4;i++){pid = fork();if(pid > 0){}else if(0 == pid){break;}}if(pid > 0){return 0;}else if(0 == pid){tasks[i]();}else{return -1;}return 0;
}void destroy_task(int tasks_cnt)
{int i;for(i = 0;i < tasks_cnt;i++){wait(NULL);}
}

task.h

#ifndef __TASK_H__
#define __TASK_H__typedef void(*Task_fun_t)(void);//将void (*)(void)函数指针重命名为---->Tsak_fun_textern int create_process_tasks(Task_fun_t tasks[],int tsak_cnt);
extern void destroy_task(int task_cnt);
#endif

main.c

#include<stdio.h>
#include"task.h"
int main(int argc, char const *argv[])
{//void (*pfun_arg)(void)[] = {main_ctl, get_cmd, exec_cmd, get_pic, send_pic};Task_fun_t tasks[] = {main_ctl,get_cmd,exec_cmd,get_pic,send_pic};//函数指针数组里装的是调用者需要执行任务的函数的函数名//调用者可自定义函数所需要实现的功能create_process_tasks(tasks,sizeof(tasks) / sizeof(tasks[0]));//创建多线程destroy_task(sizeof(tasks,sizeof(tasks[0])));//回收线程return 0;
}

http://www.xdnf.cn/news/74593.html

相关文章:

  • Arthas 指南
  • 在windows下安装windows+Ubuntu16.04双系统(下)
  • Java--数组的应用
  • 【Linux网络】应用层自定义协议与序列化
  • 怎么发布、更新Python第三方库?以potx-cloud为例
  • 算法学习(二)
  • PID控制程序编写
  • 20242817李臻《Linux⾼级编程实践》第8周
  • 辛格迪客户案例 | 浙江高跖医药委托生产质量管理协同(OWL MAH)项目
  • 2025-0421学习记录16——文献阅读与分享(1)
  • 判断链表是否为环(Java版本自己用)
  • 【技术追踪】Differential Transformer(ICLR-2025)
  • VMware制作Windows虚拟机模板注意点
  • 市场分析 3 mysql (槽)
  • vue部署到nginx服务器 启用gzip
  • 4月22日直播预告|AI赋能开发提效,三大应用场景实战分享
  • JavaScript实现二级菜单
  • 代码随想录第21天: 回溯算法3
  • Linux随记(十七)
  • SpringBoot入门实战(第二篇:MySQL集成配置)
  • 基于框架表示的不确定性推理
  • Web前端:Overflow属性(超出裁剪属性)
  • Emacs入门篇2:安装evil插件以便vi老用户可以使用VI快捷键来快速使用Emacs
  • 共建智能体时代 | 华宇亮相超聚变探索者大会2025
  • 为什么Makefile中的clean需要.PHONY
  • navicat 远程云服务器的mysql问题
  • linux上Flexlm命令
  • Dify - 整合Ollama + Xinference私有化部署Dify平台(02 )通过Docker安装Dify
  • 强化学习(Reinforcement Learning, RL)​​与​​深度强化学习(Deep Reinforcement Learning, DRL)​​
  • 高效实现账号互斥登录