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

    进程队列与线程队列的区别

    进程切换耗费大量资源

    线程特点:进程执行的基本单元qq功能

    1. 共享进程的资源,
    2. 切换少

    一个程序至少包含一个进程,一个进程至少包含一个线程,进程只是一个容器,真正执行的是线程

    进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提升了程序运行效率

    线程是最小的执行单元,进程是最小的资源单位,是操作系统运行程序的基本单位。

    一个线程可以创建或者撤销另一个线程,同一进程中的多个线程之间可以并发执行。

    守护进程的概念:子线程守护主线程,主线程退出,子线程不管结束与否都中断执行。

    同步锁:

    并发:系统具备处理多个任务的能力。

    并行:系统具备同时处理多个任务的能力。

    同步:当一个进程需要接受外部的数据时(IO操作),阻塞

    异步:

    为什么有的时候使用多线程反而要耗费更多的时间?:充斥着大量的切换

    全局解释器锁:GIL(跟python没关系,与python的解释器有关系)

    目的:在同一时刻只能一个进程中只能有有一个线程被运行(不管有多少cpu,不管启动多少线程)  

    操作系统切换的因素:IO和时间轮询两种情况。

    优化解决办法:

    1. 把线程发在多个进程中

    影响:进程开销大

    1. 最好优化方法:多进程+协程

    任务分为:IO密集型、计算密集型

    对于io密集型的任务,python的多线程有意义,对于计算密集型的任务python的多线程可以采用多进程

    同步锁:(100个线程同时操作一个数据,需要用到同步锁,比如下订单)通常被用来实现共享资源的同步访问,为每一个共享资源创建一个Lock对象当你需要访问该资源时,调用qcuqire方法来获取锁对象(如果其他线程已经获得该锁,则当前线程需等待期被释放),待资源访问完后,在调用release方法释放锁

    死锁

     python下多线程的特点:没法利用多核,意味着无法实现真正的并行的效果。并不是一无是处,其意义:

    解决办法:1.多进程

    2.所进程+协程

    协程:

  • 相关阅读:
    FastAdmin CMS 插件下载
    使用 Python 连接到 PADS Layout
    Javascript undefined 和 null
    反馈给又拍云需要以下信息
    Web前端性能优化之图片优化
    nodejs--实现跨域抓取数据
    HTML6 展望
    cSS3 伪类:nth-child 的使用方法
    css3中的几何图形shape研究
    iScroll5 API速查随记
  • 原文地址:https://www.cnblogs.com/zhuleixiao/p/9263570.html
Copyright © 2011-2022 走看看