StromanStroman 2023-04-10 02:49 采纳率: 40.9%
浏览 39
已结题

如何打开多个终端并行执行不同任务?

操作系统:Ubuntu
编程语言:C++
我想知道如何在同一段C++代码中通过for循环打开多个终端,每个终端执行自己的任务?这个代码应该怎么写?

  • 写回答

3条回答 默认 最新

  • bluetata 云计算领域优质创作者 2023-04-10 02:58
    关注

    博主可以使用C++的std::system函数来实现:

    #include <iostream>
    #include <string>
    #include <stdlib.h>
    
    int main() {
        for (int i = 0; i < 5; i++) {
            std::string command = "gnome-terminal -e 'bash -c \"echo Task " + std::to_string(i) + "; exec bash\"'";
            std::system(command.c_str());
        }
    }
    

    上面这段代码将会在5个终端中分别显示“Task 0”,“Task 1”,“Task 2”,“Task 3”和“Task 4”。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    StromanStroman 2023-04-10 02:59

    是不是在C++的代码中要搭配多线程的相关操作?不然的话下一次for循环会不会等待上一次for循环结束以后才开始?

    回复
    bluetata 回复 StromanStroman 2023-04-10 03:17

    不会等待,它会同时运行多个for循环,并可以并行执行。这段代码就是直接执行命令,循环这行不同的,和你实际打开终端多个一样的道理

    回复
    bluetata 回复 StromanStroman 2023-04-10 03:18

    另外如果你是想存在等待 那么可以直接在循环中加入 sleep(60) 也可以

    回复
    展开全部4条评论
查看更多回答(2条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 4月17日
  • 已采纳回答 4月10日
  • 创建了问题 4月10日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部