• 线程,进程,协程基本理解


    进程:计算机程序一次执行的实例,由程序数据段PCB组成,是计算机资源分配和调度的基本单位,也是线程的容器。

    线程:线程也叫轻量级进程,是程序执行的最小单位,本身只拥有少部分执行必须的资源。

    协程:·协程也叫微线程,用户可自己控制协程切换的时机,不再需要陷入系统的内核态。线程和进程都面临着内核态和用户态的切换问题,耗费许多切换时间。

    区别:

    1)线程共享内存空间,进程内存独立

    2)线程之间可直接通信,进程间通信必须通过中间代理

    3)同一进程的线程之间可以相互控制,但进程只能控制子进程

    4)线程创建很简单,但创建新进程必须对父进程进行一次克隆

    5)改变主线陈会影响其他线程,但改变父进程不会影响子进程

    GIL:全局解释器锁,系统中同一时间点,只能有一个线程被解释器解释,无法做到并行,无法充分利用多核资源。

    python所谓的多线程就类似于单核CPU情况下的多进程编程。

    如何解决GIL锁的问题:

    1)更换cpython为jpython

    2)使用多进程执行多线程任务

    3)通过C来实现多线程

    互斥锁:多线程时,保证修改的数据为有序修改,不会产生数据修改混乱。

  • 相关阅读:
    CLR via C#深解笔记三
    CLR via C#深解笔记二
    CLR via C#深解笔记一
    C#参考:Linq 概述
    JavaScript
    jQuery
    JavaScript
    云原生
    python模块----optparse模块、argparse模块 (命令行解析模块)
    python模块----pymysql模块 (连接MySQL数据库)
  • 原文地址:https://www.cnblogs.com/zhanghaibin16/p/11781337.html
Copyright © 2020-2023  润新知