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__

  • 相关阅读:
    Jmeter接口测试与数据驱动
    Jmeter内存溢出
    Mac下多版本pip共存
    Linux命令: ps
    intellij ultimate2019.3 注册
    纪念已经逝去的十年
    H3C路由器设置NAT回环、端口回流
    理清PHP在Linxu下执行时的文件权限
    windows下vagrant的安装使用
    无限极分类(adjacency list)的三种方式(迭代、递归、引用)
  • 原文地址:https://www.cnblogs.com/zhangxiangning/p/10723729.html
Copyright © 2011-2022 走看看