zoukankan      html  css  js  c++  java
  • python-进程

    进程:一个运行起来的程序或者软件叫做进程
      1.1 每次启动一个进程都向操作系统索要运行资源,进程是操作系统资源分配的基本单位
      1.2默认情况下启动一个进程默认只有一条线程,这个线程主线程,线程是依附在进程里面,没有
          进程就没有线程,进程可以有多个线程
    进程和线程的对比:
      进程:每次启动一个进程都需要向操作系统索要运行资源,进程是操作系统资源分配的基本单位
      线程:执行代码的分支,线程是cpu调度的基本单位,线程是依附在进程里面的,没有进程就线程,默认一个进程只有一个线程,但是可以开辟多个线程。
      进程不共享全局变量,线程共享全局变量但是要注意资源竞争数据错误的问题,可以使用线程同步或着互斥锁。
      多进程开发比单进程多线程开发稳定性要强,因为某个进程死了不会影响其他进程的运行,但是单进程多线程开发,如果这个进程死了,那么进程中的所有线程都不能再运行了
      多进程开发比单进程开发资源要分配得多,多线程可以利用进程中的资源,但是每次启动一个进程都需要向操作系统索要运行资源。
      线程和进程在使用上各有优缺点:
        线程执行开销小,但不利于资源的管理和保护;而进程正相反。
             正常情况下主进程会等待所有的子进程执行完成以后程序再退出。
     
     
    导入模块名 :import os (文件、目录操作)
      os.getpid():获取当前进程的编号
      os.getppid(): 获取父进程的编号
      os.kill(编号,9):根据进程编号杀死对应的进程,9表示强制杀死
    导入进程模块:import multiprocessing
      multiprocessing.Process():创建子进程
      变量名.start():子进程开始运行
      变量名.join():主进程等待写入进程执行完成以后程序再往下继续执行
      变量名.daemon = True :设置守护主进程, 主进程退出后子进程直接销毁了
      变量名.terminate() :让子进程直接销毁,不管任务是否完成,立即终止
      multiprocessing.current_process(): 获取当前进程对象
     
    multiprocessing.Queue():创建消息队列
    变量名.put(): 放入数据
    变量名.put_nowait():不会等待队列有空闲位置再放入数据,如果数据放入不成功就直接崩溃
    变量名.get():读取数据
           注意点:队列为空时,使用get方法会等待,直到队列有数据以后再取值
    变量名.get_nowait():队列为空,取值的时候不等待,但是取不到值那么直接崩溃了
    变量名.full():查看变量名是否是满的
            注意点:只使用put放入数据直接判断队列是否为空获取的结果不正确,因为没有等队列把数据写完直接就取获取了,那么这是队列是空的。
    变量名.qsize():查看队列的个数 # mac 版本不能使用qsize()
    变量名.empty():队列为空
     
    变量名.multiprocessing.Pool():创建进程池
    变量名.apply():同步执行进程池:表示一个任务执行完成另外一个任务才能执行
    变量名.aqqly_async():异步执行进程池:不会等待其它任务执行完成以后再去执行,多个任务一起执行
    变量名.join():主进程阻塞,等待子进程的退出, 必须在close或terminate之后使用
     
    注1:主进程与进程池之间的同步:一个一个执行
    注2:主进程与进程池之间的异步:多个任务一起执行,异步时不会主进程不会等待进程池执行,会直接结束。
  • 相关阅读:
    node.js之Cookie
    jQuery和js之Cookie实现
    StringRedisTemplate操作Redis
    Could not get a resource from the pool 错误解决
    tableLayoutPanel 列宽度设置
    KRBTabControl(中文)Windows选项卡控件
    KRBTabControl
    Deferred content load was not performed. To provide the content, subscribe to the View's QueryControl event
    where(泛型类型约束)
    ExportAsFixedFormat Visio文件另存为其他几种格式的处理
  • 原文地址:https://www.cnblogs.com/qingchang/p/9041121.html
Copyright © 2011-2022 走看看