zoukankan      html  css  js  c++  java
  • 线程

    进程:

    互斥锁

    进程之间的数据的共享模块

    关于数据安全的问题

    进程池:(自己了解,线程部分还会讲)

    Multiprocessing中的from multiprocessing import pool不常用了

    事件/信号量/管道 (太不常用了,所以不讲了)

    线程的概念(面试重点)

    认识线程模块

     

    线程是进程当中的一个单位

    进程是计算机当中最小的资源分配单位   (进程 是圈资源)

    线程是计算机中被CPU调度的最小单位

    开启进程 关闭进程 切换进程都需要花时间

    电脑的资源有限

    开启过多的进程会导致计算机奔溃

    理论线程服务上限:

    CPU核数*2

    进程主要是进行数据隔离

    两个不同的服务器端

    并发:同一时刻能同时接受多个客户端的请求

    线程:

    轻量级进程

    不做数据隔离

    在同一个进程中的多个线程是可以共享数据的

    线程的开启/销毁/切换都比进程高效很多

    多个进程可以利用多核

    多个线程也可以利用多核

    多进程和多线程的区别:

    进程 数据隔离 开销大

    线程 数据共享 开销小

     

    Python 当中的多线程

    Cpython 解释器 中的GIL

    Jpython pypy解释器中的多线程是可以访问多核的

     

    利用多核 意味着 多个CPU可以同时计算线程中的代码

     

     

    _threadthreading模块

    Threadinghemultiprocessing 先有threading

    Threading 没有池的功能

    Multiprocessing 完全模仿threading模块

    实现了池的功能

    Concurrent .futures

    实现了线程池/进程池

    在线程部分不需要通过import来为新的线程获取代码

    我因为新的线程和之前的主线程共享同一段代码

    不需要import也就不存在在子线程中有重复了一次创建线程的操作

    所以就不必要 if__name__ = __main__

  • 相关阅读:
    Python、Lua和Ruby比较——脚本语言大P.K.
    vim 设置默认显示行号
    C语言
    How To Add Swap on Ubuntu 14.04
    How To Install Apache Kafka on Ubuntu 14.04
    php的错误和异常处理
    md5sum
    大牛的博客
    【转】4G手机打电话为什么会断网 4G上网和通话不能并存原因分析
    【转】女人最想要的是什么
  • 原文地址:https://www.cnblogs.com/zhangxiangning/p/10723729.html
Copyright © 2011-2022 走看看