首页 > 系统相关 >coc仓库--fork子进程

coc仓库--fork子进程

时间:2023-07-18 23:45:14浏览次数:35  
标签:fork fastdeploy -- onnx yuxian coc auto home

fork子进程

原函数

void forktest(int *i, pid_t parentid)
{
    tesseract::TessBaseAPI *chi_api = new tesseract::TessBaseAPI();
    if (chi_api->Init("/usr/share/tesseract-ocr/4.00/tessdata/", "chi"))
    {
        fprintf(stderr, "Could not initialize tesseract.\n");
        exit(1);
    }
    deviceINFO cdc3f475;
    auto armymodel = fastdeploy::vision::detection::YOLOv5("/home/yuxian/coc/fastdepoly/army.onnx");
    auto constructmodel = fastdeploy::vision::detection::YOLOv5("/home/yuxian/coc/fastdepoly/construct.onnx");
    auto attack_homemodel = fastdeploy::vision::detection::YOLOv5("/home/yuxian/coc/fastdepoly/attack_home.onnx");
    auto naimodel = fastdeploy::vision::detection::YOLOv5("/home/yuxian/coc/fastdepoly/nai.onnx");
    auto duchengmodel = fastdeploy::vision::detection::YOLOv5("/home/yuxian/coc/fastdepoly/ducheng.onnx");
    auto homemodel = fastdeploy::vision::detection::YOLOv5("/home/yuxian/coc/fastdepoly/home.onnx");
    auto xunlianmodel = fastdeploy::vision::detection::YOLOv5("/home/yuxian/coc/fastdepoly/xunlian.onnx");
    // fork();
    //  fork();
    cv::Mat mat(1080, 1920, CV_8UC3);

    if (getpid() - parentid == 0)
    {
        *i = 0;
        std::cout << "这是主进程。此时 i = " << *i << "  pid = " << getpid() << std::endl;
        FILE *file = popen("adb -s cdc3f475 shell /data/local/tmp/minitouch -i", "w");
        cdc3f475.touchFile = file;
        cdc3f475.ADB_IP = "cdc3f475";
        cdc3f475.mat = &mat;
        cdc3f475.armyModelPoint = &armymodel;
        cdc3f475.constructModelPoint = &constructmodel;
        cdc3f475.attack_homeModelPoint = &attack_homemodel;
        cdc3f475.naiModelPoint = &naimodel;
        cdc3f475.duchengModelPoint = &duchengmodel;
        cdc3f475.homeModelPoint = &homemodel;
        cdc3f475.xunlianModelPoint = &xunlianmodel;
        cdc3f475.chi_api = chi_api;
        control(&cdc3f475);
        pclose(file);
    }
    else if ((int)(getpid() - parentid) == 1)
    {

    }
    std::cout << getpid() << " parent id = " << getppid() << std::endl;
    sleepMills(1000);
}

2.函数解析

*在fork过后,子进程就会被创建,可以根据getpid来分辨所在进程,由于子进程接下来同样会运行父进程的相同代码。
*所以子if结构内进行独立资源的定义,而在if外进行共用资源的定义。
*主要共用资源有 fastdeploy所有的onnx模型,以及tesseract所需要的api指针。

标签:fork,fastdeploy,--,onnx,yuxian,coc,auto,home
From: https://www.cnblogs.com/yuxiannana/p/17564441.html

相关文章

  • 代码随想录算法训练营第60天 | ● 84.柱状图中最大的矩形 - 第10章 动态规划part03
     第十章 单调栈part03有了之前单调栈的铺垫,这道题目就不难了。  ●  84.柱状图中最大的矩形   今天是训练营最后一天,恭喜坚持两个月的录友们,接下来可以写一篇自己 代码随想录一刷的总结。好好回顾一下,这两个月自己的博客内容,以及自己的收获。  ......
  • 冲刺数学建模(1)
    MATLAB基础操作开始时间2023-07-18 21:08:59结束时间2023-07-18 23:34:43前言:出去完了好几天,又在家里躺了两天尸,稍微认真学一点吧,简单开个新篇章,呜呼!A.1Matlab帮助的使用1helpelfun%关于基本函数的帮助信息2helpexp%指数函数exp的帮助信息1.help1当要查......
  • 云拨测全面升级丨单次拨测低至 0.001 元
    作者:少焉随着云原生、微服务技术的发展,可观测需求变得越来越强烈,作为可观测技术的重要能力之一,云拨测(SyntheticsMonitor)由于其零侵入、开箱即用、主动式监测手段,也受到很多用户的青睐,很多通过云拨测主动监测自身服务的可用性,先于用户发现线上异常;也会通过云拨测分析和优化网页加......
  • 小迪安全17-21集重要知识点
    sql注入#加解密,二次,DNSlog注入加解密:在注入时通常把注入语句修改为对应的加密形式因为在php源代码中有解密的操作然后才带入数据库进行查询二次注入:二次注入一般是用于白盒测试、黑盒测试就算是找到注入也没办法攻击。 #堆叠查询注入只有部分数据库支持堆叠注入一般......
  • 免费使用cloudflare搭建OpenAI的接口代理
    由于GFW以及OpenAI官方的封禁,我们在国内服务器是访问不通OpenAI的官方接口的之前,我一直是使用一个网上找的第三方代理域名,但是担心使用别人的代理不安全、不稳定现在,我们可以使用cloudflare自己搭建一个OpenAI代理服务,使用我们自己的转发代理第一步:注册cloudflare账号前往官方......
  • JavaScript 笔记(二)事件循环机制
    一、事件循环机制1.定义:事件循环是JavaScript中一种重要的异步执行机制。2.作用:管理和协调各种异步任务的执行顺序,保证JavaScript代码的执行顺序和预期一致。3.组成部分:3.1主线程(调用栈):执行任务;3.2任务队列:存放异步任务;3.3事件循环......
  • day13--23.7.18变量,变量作用域,常量和变量的命名规范
    变量变量是什么:就是可以变化的量Java是一种强类型语言,每个变量都必须声明其类型Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域typevarName[=value][{,varNam[=value]}];//数据类型变量名=值;可以使用逗号隔开来声明多个同类型变量。每个变......
  • 08-数组
    数组介绍数组可以存放多个同一类型的数据。数组也是一种数据类型,是引用数据类型。即:数组就是一组数据。 ......
  • 7.18
    #include<iostream>usingnamespacestd;intmain(){intd;intN;//朋友圈的个数intID[100][1000];intk[100];//朋友圈中的人数intM;//待查询人数intMid[10000];//待查询人的IDintp[10000]={0};//记录待查寻人是否帅气bool......
  • git commit 时报错:husky - pre-commit hook exited with code 1 (error)
    在使用git进行commit时出现错误:husky-pre-commithookexitedwithcode1(error)。方式一chatgpt的回答是:报错信息“husky-pre-commithookexitedwithcode1(error)”表示在执行Git提交操作时,pre-commit钩子脚本返回了非零的退出码,表示出现了错误。这种......