zoukankan      html  css  js  c++  java
  • 进程,线程

    1.进程优点

    提供了多道编程,让我们每个人感觉都拥有自己的CPU和其它资源,可以提高计算计的利用率。

    2.进程的两个重要特点

    2.1 进程只能在一个时间干一件事,如果想同时干两件事或多件事,进程就无能为力了

    2.2进程如果在执行的过程中遇到阻塞,即使进程中有些工作不依赖于输出的数据也将无法执行

     

    3进程间互相访问数据的四种方式

    注释 不同进程间内存是不能互相共享的所以互相之间不能访问对方数据

    3.1.利用Queues 实现父进程到子进程的数据传递

    3.2利用管道pips 实现两个进程间数据传递

    3.3Managers 实现很多进程间数据共享

    3.4借助redis中间件进行数据共享

    5. 进程和程序的区别

    5.1.程序只是一个普通文件,是一个机器代码指令和数据的集合,所以程序是一个静态的实体

    5.2.而进程是程序运行在数据集上的动态过程,进程是一个动态实体,它应创建而产生,应调度执行应等待

    或事件而被处于等待状态,因完成任务而被取消。

    5.3 进程是系统进行资源分配和调度的一个独立单位

    5.4 一个程序对应多个进程,一个进程为多个程序服务

    5.5 一个程序执行在不同的数据集上就成为不同的进程,可以用进程控制块来唯一标识每个进程

    线程

    1.线程定义

    线程是操作系统调度的最小单位

    它被包含在进程之中,是进程中的实际运作单位

    进程本身是无法自己执行的,需要操作cpu,必须创建一个线程,线程是一系列的集合

    线程定义扩展内容回答

    1.线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位

    2.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务

    3. 无论你启动多少个线程,你有多少个cpu,python在执行的过程中淡定的在一个时刻只允许一个线程执行

    4.进程本身是无法自己执行的,要操作cpu,必须创建一个线程,线程是一系列指令的集合

    5.所有在同一个进程里的线程是共享一个内存空间的,不同进程间内存空间不同

    6.同一个进程间的各个线程可以相互访问资源,线程可以操作同进程间的其它线程,但进程只能操作子进程

    7.两个进程要通讯,必须要通过一个中间代理

    8.对主线程的修改可能会影响其它子线程,对主进程的修改不会影响其它进程,因为进程间内存互相独立的

    但是同一进程下的线程共享内存

    进程和线程的区别

    1 进程包含线程

    2 线程共享内存空间

    3 进程内存是独立的,不可互相访问

    4进程可以生成子进程,子进程间不能互相访问

    5 在一个进程里面线程之间可以交流,两个进程想通讯,必须通过一个中间代理来实现

    6.创建新线程很简单,创建新进程需要对其父进程进程克隆

    7.一个线程可以控制或操作同一进程里面的其它线程,但进程只能操作子进程

    8.父进程可以修改子进程不影响其它子进程,但不能修改自己

    9.线程可以帮助应用程序同时做几件事

    线程索

    1.当一个线程对某个资源进行CPU计算的操作时加一个线程锁,只有当前线程计算完成主动释放锁,

    ,只有当前线程计算完成主动释放锁,其它线程才能对其操作

    2.这样就可以防止还未计算完成,释放GIL锁后其它线程对这个资源操作导致混乱问题

    Semaphone(信号量)

    1.互斥锁,同时只允许一个线程更改数据,而Semaphore是同时允许一定数量的线程更改数据

    2.比如厕所有三个坑,同时最多只允许三个人上厕所,后面的人只能等待里面的人出来才能再进去

    3. 作用就是同一时刻允许允许的线程数量

  • 相关阅读:
    Codeforces Round #443 (Div. 2)
    Matplotlib学习---用seaborn画联合分布图(joint plot)
    Matplotlib学习---用matplotlib和sklearn画拟合线(line of best fit)
    Matplotlib学习---用mplot3d画莫比乌斯环(Mobius strip)
    Matplotlib学习---用matplotlib画误差线(errorbar)
    Matplotlib里颜色,标记,线条类型参数的选择(colors, markers, line styles)
    Matplotlib学习---用matplotlib画阶梯图(step plot)
    Matplotlib学习---用matplotlib画箱线图(boxplot)
    Matplotlib学习---用seaborn画相关矩阵图(pair plot)
    Matplotlib学习---用matplotlib画面积图(area chart)
  • 原文地址:https://www.cnblogs.com/xiaoxiamiaichiyu/p/13836687.html
Copyright © 2011-2022 走看看