精华内容
下载资源
问答
  • 一个程序多个进程

    千次阅读 2011-04-08 18:20:00
     说白了就是,一个程序可以重复运行,开几个窗口,比如网游的“双开”,一个进程可以对应多个程序就是一个DLL文件可一被多个程序运用,比如DirectX9的动态链接库,就是,许多游戏都要有它才能运行。

    如何理解一个程序可以对应多个进程,一个进程也可以对应多个程序?

     

    说白了就是,一个程序可以重复运行,开几个窗口,比如网游的“双开”,
    一个进程可以对应多个程序就是一个DLL文件可一被多个程序运用,比如DirectX9的动态链接库,就是,许多游戏都要有它才能运行。
    展开全文
  • python多进程多线程,多个程序同时运行

    千次阅读 多人点赞 2021-04-08 13:47:15
    python 多线程 多进程同时运行 多任务要求 python 基础语法 python 文件目录操作 python 模块应用 开发工具 pycharm ...在段时间内交替执行多个任务, 例如单核cpu 处理多任务, 操作系统让各个任务交

    python 多线程 多进程同时运行

    多任务要求

    1. python 基础语法
    2. python 文件目录操作
    3. python 模块应用

    开发工具

    pycharm

    实现方法

    多任务的实现可以用进程和线程来实现

    进程—> 线程----> 多任务应用

    多进程操作

    比如下载多个文件, 利用cpu 资源 提高效率

    多任务: 同一时间执行多个任务, 比如windows操作系统

    执行方式有两种( 表现形式 )

    并发

    在单核cpu中:

    在一段时间内交替执行多个任务, 例如单核cpu 处理多任务, 操作系统让各个任务交替进行

    并行

    多核cpu 给每个核都分配一个任务 每个核执行自己的任务

    真正意义上的同时执行

    如何实现( 原理 )

    多进程

    python 中实现多进程来实现多任务, 进程是操作系统进行资源分配和调度的最小单位, 一个运行起来的程序叫做进程, 没有在运行的程序叫做程序

    当一个.py 文件运行的时候系统会创建一个主进程

    比如

    def fun1():
        print(1)
    def fun2():
        print(2)
        
    fun1()
    fun2()
    

    代码运行的时候系统会先执行fun1 在执行fun2 按顺序运行

    使用多进程的话: 在程序运行的时候会创建一个主进程, 那么在程序运行除了主进程之外创建一个子进程, 我们让主进程去执行fun1(), 让子进程去执行fun2(), 让他们两个同时执行, 来实现多任务同时进行

    多进程完成多任务

    首先要知道如何去创建第二个进程, 第三个进程, 进程的创建有三个步骤

    1. 导入进程包
      • import multiprocessing
    2. 通过进程类去创建进程对象
      • 进程对象=multiprocessing.Process()
    3. 启动进程执行任务
      • 进程对象.start() 来开始执行进程
    import threading
    import time
    import os
    def fun1():
        for i in range(3):
            print('1')
            time.sleep(1)
    
    def fun2():
        for i in range(3):
            print('2')
            time.sleep(3)
    
    
    if __name__ == '__main__':
        sing_thread = threading.Thread(target=fun1)
        song_thread = threading.Thread(target=fun2)
    
        sing_thread.start()
        song_thread.start()
    

    通过进程类创建进程对象

    进程对象 = multiprocessing.Process(target= 任务名)

    参数名说明
    target执行的目标任务名, 这里指的是函数名(方法名)
    name进程名, 一般不用设置(系统自动为进程设置默认名字Process-1····)
    group进程组, 目前只能使用None

    必须要指定进程的名字target

    def none():
        pass
       
    process = multiprocessing.Process(target=none)
    process.start()
    

    进程如何执行带有参数的任务

    参数名说明
    args以元祖的方式给任务传递参数, 顺序要正确
    kwrags以字典的方式给执行任务传递参数, key 跟参数名要一致

    process = multiprocessing.Process(target=function, args=(10,)) arg传递的必须是参数所以传递一个变量的时候需要(10,)

    process = multiprocessing.Process(target=function, kwargs={'key': value})

    import multiprocessing
    import time
    import os
    
    def fun1(num):
        print('1进程PID', os.getpid())
        print('1进程父进程编号', os.getppid())
        for i in range(num):
            print('1....\n')
            time.sleep(0.5)
    
    
    def fun2(num):
        print('2进程PID', os.getpid())
        print('2进程父进程编号', os.getppid())
        for i in range(num):
            print('2...')
            time.sleep(0.5)
    
    # 1. 导入进程包
    
    if __name__ == '__main__':
        sing_process = multiprocessing.Process(target=fun1, args=(5,))
        dance_process = multiprocessing.Process(target=fun2, kwargs={'num':2}) # target
    
        #3. 启动进程
        sing_process.start()
        dance_process.start()
    

    获取进程编号

    1. 获取当前进程的编号
      • os.getpid()
    2. 获取当前父进程的编号
      • os.getppid()
    import os 
    os.getpid()
    def work():
        print('work 进程编号', os.getpid())
        print('work 父进程编号', os.getppid())
        
    

    主进程默认不会结束, 在子进程全部结束之后才会关闭主进程

    在实际中我们想要的效果, 主进程关闭,, 子进程全部关闭

    设置守护主进程

    希望主进程关闭的时候子进程不在执行. 则需要设置守护选项

    子进程对象.daemon=True 那么在主进程运行完成之后, 那么子进程也将会自动结束

    os 部分操作

    os 创建目标文件夹目录

    os.mkdir(dir)

    多线程

    实现多任务的另一种形式, 进程是分配资源的最小单位, 线程是程序执行的最小单位, 一个进程中最少有一个线程来负责该进程, 比如一个QQ(一个进程) 打开了两个窗口(两个线程)跟两个人聊天, 线程自己并不需要系统资源, 线程与其他线程共享这个进程的资源, 因此使用多线程的时候实现了资源节约,

    1. 多线程是Python 程序中实现多任务的一种方式
    2. 线程是程序执行的最小单位
    3. 同属于一个进程的多线程共享进程拥有的所有资源

    多线程实现多任务

    线程的创建步骤

    1. 导入线程模块
      • import threading
    2. 通过线程类去创建线程对象
      • 线程对象=threading.Thread(target=任务名)
    3. 启动线程执行任务
      • 线程对象.start()
    参数名说明
    target执行目标的任务名, 这里值函数名( 方法名)
    name线程名, 一般不用设置
    group线程组, 目前只能使用None

    其他的一毛一样

    进程线程对比

    关系对比

    1. 线程是依附在进程里边的, 没有进程就没有线程
    2. 一个进程默认提供一条线程, 进程可以创建多个线程

    区别对比

    1. 进程创建的开销要比线程的开销要大
    2. 进程是操作系统资源分配的基本单位, 线程是cpu 调度的基本单位
    3. 线程不能独立执行, 必须依存进程

    优缺点对比

    1. 进程优缺点:

      优点:可以用多核

      缺点:资源开销大

    2. 线程优缺点

      优点: 资源开销小

      缺点:不能使用多核

    本笔记总结于bilibili 黑马程序员
    多进程多线程视频

    展开全文
  • 一个应用程序有多少个进程

    千次阅读 2019-12-16 21:55:42
    个程序几个进程在于这个程序的开发者的设置,可以是1个,也可以是多个的。...2.一个程序只有一个进程但被开启很多个 启动多个同一应用程序,每个应用程序都是单进程。这个场景有些应用程序会禁用掉,有些是可以的...

    一个程序几个进程在于这个程序的开发者的设置,可以是1个,也可以是多个的。

    1.一个程序里有很多个进程

    一个程序几个进程在于这个程序的开发者的设置,可以是1个,也可以是多个的。一个应用程序,启动多个处理进程。换言之,所有进程隶属于当前应用程序;这是所谓的多进程服务。

    2.一个程序只有一个进程但被开启很多个

    启动多个同一应用程序,每个应用程序都是单进程。这个场景有些应用程序会禁用掉,有些是可以的,看应用程序的定位。如果允许,那么需要解决数据共享的问题(主要是数据写入);如果不允许,那么只能启动一个此类应用程序。

    对于现代操作系统(OS)以上两种场景时刻都在发生。比如QQ,允许同时登陆多个账号而出现多个qq程序。同时每个qq程序又有多个进程进行业务处理。

    展开全文
  • 一个应用程序可能需要启动多个进程! 一个应用程序可能需要启动多个进程!! 一个应用程序可能需要启动多个进程!!!   1.有时候系统管理员可能只关心现在系统中运行着哪些程序,而不想知道有哪些进程在运行。由于...

    一个应用程序可能需要启动多个进程!

    一个应用程序可能需要启动多个进程!!

    一个应用程序可能需要启动多个进程!!!

     

    1.有时候系统管理员可能只关心现在系统中运行着哪些程序,而不想知道有哪些进程在运行。由于一个应用程序可能需要启动多个进程。所以在同等情况下,进程的数 量要比程序多的多。

    2.-A    列出所有的进程
    -w    显示加宽可以显示较多的资讯
    -au    显示较详细的资讯
    -aux    显示所有包含其他使用者的行程

     

    3.ps用于查看当前进行的进程,ps-ef用于查看当前所有的进程。

    展开全文
  • 由于程序的需要,我们需要在台服务器上启动多个相似的子进程,如何做呢? 有两种可以尝试一下: 1.循环创建: #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <...
  • 单个进程监听多个端口单个进程创建多个 socket 绑定不同的端口,TCP, UDP 都行多个进程监听同一个端口(multiple processes listen on same port)方式1:通过 fork 创建子进程的方式可以实现,其他情况下不行。...
  • 在ubuntu中,终止一个进程或终止一个正在运行的程序,一般是通过 kill 、killall、pkill、xkill 等进行。 -------------------------------------------------------------------先看两个例子:  例子一:结束某个...
  • Qt 之运行一个实例进程

    千次阅读 2016-02-04 17:52:34
    简述发布程序的时候,我们往往...多个实例进程的软件也很多,例如:Visual Studio、Qt Ctretor、QQ…下面我们来介绍下如何实现一个实例进程。简述 QSharedMemory QLocalServer QtSingleApplication 任务列表 更多参考QS
  • Android中如何设置两个应用程序为同一个进程?1.在&lt;manifest&gt;里面添加:android:sharedUserId,注意这个属性的取值必须包含点(dot),也就是诸如java packae的形式。比如com.aaa.bbb。没有dot的话,...
  • 编写多进程程序 --多进程编程

    千次阅读 2015-06-28 01:47:17
     通过编写多进程程序,熟练掌握fork()、exec()、wait()和waitpid()等函数的使用,进一步理解在Linux中多进程编程的步骤。 实验内容  该实验有3个进程,其中一个为父进程,其余两个是该父进程创建的子进程,...
  • 进程(process)和线程(thread)是操作系统的基本概念,但是...vs 线程 :一个进程可以包含多个线程" title="进程 vs 线程 :一个进程可以包含多个线程" style="border:0px; max-width:602px; height:auto; ma
  • 程序未启动的时候,无法获取窗口的句柄。会造成process.MainWindowHandle返回值为0,通过GetLastError得到返回值1400(无效的窗口句柄)。 可以在process.MainWindowHandle前加上延时语句(System.Threading....
  • 在ubuntu中,终止一个进程或终止一个正在运行的程序,一般是通过 kill 、killall、pkill、xkill 等进行。 ------------------------------------------------------------------- 先看两个例子:  例子一...
  • 背景:java 支持线程,这是绝大多数程序都满足的必要条件,因为线程可以增加程序的“吞吐量”,提高用户对软件的流畅性体验。  同时,java程序也支持开启新的进程,或者叫做java调用外部应用程序。这里的实现...
  • 作者:yooongchun 微信:18217235290 最近在使用Pyinstaller打包Python程序的时候发现,打包过程正常,但在运行时...经过网上的多番搜索查阅发现是因为程序使用了多进程模式,而在windows上Pyinstaller打包进程程...
  • 进程是指一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是系统运行程序的基本单位,因此进程是动态的。 线程与进程相似,但线程是一个进程更小的执行单位。一个进程在其执行的过程中可以产生多个...
  • 端口号可以用来标识同一个主机上通信的不同应用程序,端口号+IP地址就可以组成一个套接字,用来标识一个进程 2.端口号的应用场景 在TCP/IP协议中,用“源IP地址”,“目的IP地址”,“源端口号”,“目的端口...
  • 比如显示图像的驱动程序,多个程序的显示都是需要他来执行。 我们玩游戏算个程序,需要显示图像的驱动,声音驱动、IO驱动的同时执行。 就这么简单。 我的理解:大家知道bat文件可以当做命令call的。 你写了...
  • 网络-一个进程是否能拥有多个端口

    千次阅读 2019-03-05 09:26:36
    1.端口理解 其它网友的观点 ... 博文中打的比喻个人觉得很形象,特此引用一下。...其它网友也有相同的问题,大部分人认为一个进程可以拥有多个端口。 端口 下面是引用别人博客的话,同样觉得挺形象。socke...
  • 线程程序与单进程程序的架构

    千次阅读 2012-06-13 21:39:54
    一般采取线程池的策略,一个主线程来分配请求。 (一)常见的进程模型: (1)线程模型 这种模式固定线程数量,吞吐量是接近每个线程的吞吐量*线程数。不具有伸缩性,伸缩性不强,在高负...
  •         进程程序之间可以形成一对一,一对对一,的关系,分别举例说明在什么情况下会形成这样的关系?...(3)进程是具有独立功能的程序一个...
  • 多个进程能否监听同一个端口号

    千次阅读 2019-05-31 14:03:17
    那么有个问题就很有意思了,不同的进程可以监听在同一个IP地址:端口号么?根据Unix网络编程中的知识可知,服务端监听一个端口会经历:1、根据套接字类型(Ipv4,Ipv6等)创建套接字socket2、将套接字bind绑定到具体的...
  • 参考链接: multiprocessing官网 https://blog.csdn.net/cityzenoldwang/article/details/78584175 博主整理 ... Process类 Process 类用来描述一个进程对象。创建子进程的时候,只需...
  • 进程 线程 程序

    千次阅读 2012-07-17 17:16:59
    就相当于将应用程序装进容器里了,你可以往容器里加其他东西(如:应用程序在运行时所需的变量数据、需要引用的DLL文件等),当应用程序被运行两次时,容器里的东西并不会被倒掉,系统会找一个新的进程容器来容纳它。...
  • 进程

    万次阅读 2021-05-25 14:29:00
    多个进程不能共享全局变量7.启动多个子进程8.多进程文件拷贝9.封装进程对象10.进程间的通信 进程 .什么是多任务 现代的操作系统(Windows,Mac OS X,Linux,UNIX等)都支持“多任务”。 什么叫做多
  • 程序 进程 线程

    千次阅读 2007-06-04 08:55:00
    一,什么是进程? CPU在一个瞬间只能运行一道程序。但是在一个时间段内可能会运行程序,这样就给了我们一种程序并行的概念。这就是“伪并行”:CPU在...一个进程就是一个正在执行的程序,包括程序计数器、寄存器
  • 启动虚拟机时,提示“另一个程序已锁定文件的部分,进程无法访问,打不开磁盘…或它所依赖的某个快照磁盘,模块"Disk"启动失败。”查看vmware.log日志文件,如下图所示: 导致问题的原因 .lck 文件是VMWare软件的...
  • 进程程序的区别?

    千次阅读 2017-06-09 20:36:41
    程序的定义:程序是指令的有序集合。是一个在时间上按照严格次序前后相继的操作序列。 进程的定义:可并发执行的程序在数据集上的一次执行程。... 一个进程可以执行一个程序或多个程序 (4)进程具有并发
  • 关于同一进程配置多个groupId消费同一个Topic的问题   同一个进程中配置多个groupId消费同一个topic,期望的结果是都可以消费到这个topic,而实际上,只会有一个groupId能消费这个topic。所以这个groupId的配置也...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,254,057
精华内容 501,622
关键字:

一个进程多个程序