• 请不要在回答技术问题时复制粘贴 AI 生成的内容
smallpython
V2EX  ›  程序员

一个程序多运行几个,和一个程序开多进程有什么区别吗?

  •  
  •   smallpython · Sep 14, 2020 · 2669 views
    This topic created in 2116 days ago, the information mentioned may be changed or developed.
    在不同的语言中会有区别吗?例如 Python, Java, c 等

    各位在工作中又遇到过类似的抉择吗?

    主要是 docker 启动时只能输入一个命令, 打算其他的逻辑通过子进程的方式启动
    Supplement 1  ·  Sep 16, 2020
    按照这个逻辑来说, 我在命令行下运行的所有程序都是 bash 的子进程是吗
    8 replies    2020-09-16 17:17:26 +08:00
    Rxianbei
        1
    Rxianbei  
       Sep 14, 2020 via Android
    看程序的特性和作用,部分没区别
    smallpython
        2
    smallpython  
    OP
       Sep 14, 2020   ❤️ 1
    @Rxianbei 可以举一个有区别的例子吗
    learningman
        3
    learningman  
       Sep 14, 2020
    程序开多进程是由这个程序自己调度,而且会有一个主线程
    你多开几个。。。没人能保证可用性,万一同时写一个文件,不就得两个崩一个
    BingoXuan
        4
    BingoXuan  
       Sep 14, 2020
    取决于计算资源共享和专属边界。你可以用文本编辑器打开 n 个文档,但每个文本编辑器都是独享各自不同的文档。又或者 n 个 worker 进程进行并行计算,虽然是处理一个计算任务,但实际又是多个进程共同完成的。
    xylophone21
        5
    xylophone21  
       Sep 14, 2020
    无区别(或者说区别不大):chrome 简化的认为一个 Tab 一个进程 VS IE6 哪种一个页面开一个程序 =》 由于页面和页面间的关系一般不大(除了切换稍微麻烦一点),你可以认为没什么关系

    有区别:爬虫,多进程版本会自动分配不同的任务给不同的进程,这其中会有很多协调工作(不重复,失败重分配等) VS 单进程多开几个版本,你要手动的配置每个进程的任务,并且不会协调(快的程序做完了就停了,不会替别的程序干活)
    ebingtel
        6
    ebingtel  
       Sep 15, 2020
    @smallpython 有的 比如 gunicorn 公用一个端口,一个程序开多进程 就比较适合…… 一个程序多运行几个就不适合
    jmperdev
        7
    jmperdev  
       Sep 15, 2020
    system()和 fork()的区别
    smallpython
        8
    smallpython  
    OP
       Sep 16, 2020
    按照这个逻辑来说, 我在命令行下运行的所有程序都是 bash 的子进程是吗
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3125 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 13:54 · PVG 21:54 · LAX 06:54 · JFK 09:54
    ♥ Do have faith in what you're doing.