• 进程与线程


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

    进程切换耗费大量资源

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

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

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

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

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

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

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

    同步锁:

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

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

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

    异步:

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

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

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

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

    优化解决办法:

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

    影响:进程开销大

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

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

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

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

    死锁

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

    解决办法:1.多进程

    2.所进程+协程

    协程:

  • 相关阅读:
    Samba 4.0 RC3 发布
    SymmetricDS 3.1.7 发布,数据同步和复制
    Express.js 3.0 发布,Node.js 的高性能封装
    GIFLIB 5.0.1 发布,C语言的GIF处理库
    jQuery UI 1.9.1 发布
    SVN Access Manager 0.5.5.14 发布 SVN 管理工具
    DynamicReports 3.0.3 发布 Java 报表工具
    HttpComponents HttpClient 4.2.2 GA 发布
    AppCan 2.0 正式发布,推移动应用云服务
    Ruby 2.0 的新功能已经冻结
  • 原文地址:https://www.cnblogs.com/zhuleixiao/p/9263570.html
Copyright © 2020-2023  润新知