• 网络线程


    多进程 socket server

    只要来了一个client请求  开一个进程

    进程开多了就会卡

      进程的调度

      进程的开启的开销

      给操作系统的负担

    数据文件 代码

    记录当前的执行位置

    线程:

      轻量级   

      在进程中数据共享

      是进程的一部分,不能独立存在

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

    进程:

      对操作系统的压力大

      数据隔离

      可以在操作系统中独立存在'

      计算机中资源分配的最小单位'

    假设有一个机制

      开启进程的开销变短

      调度的时间也变短

      操作系统减负

    计算机 中被cpu调度的最小单位

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

      

    轻量级的进程或者轻型进程

    线程本身创建出来就是为了解决并发问题的

    并且它的整体效率比进程要高

    但是线程实际上也有一些性能上的限制管理调度

    在整个程序界:

      如果你的程序需要数据隔离:  多进程

      如果你的程序对并发的要求非常高:多线程

    内存中的线程

    用户级线程

    内核级线程

    混合实现

    python

    单核的一个cpu

    多核的 作为一门脚本语言

      线程锁这件事是由cpython解释器完成

    对于python来说,同一时刻只能有一个线程被cup访问

    彻底的解决了多核环境下的安全问题

    线程锁:全局解释器锁GIL

      1.这个锁是锁线程的

      2.这个锁是解释器提供的

    多线程仍然有他的优势

      你的程序中用到CPU真的多么

      如果100% 90%的时间都消耗在计算上,那么cpython解释器下的多线程对你来说确实

      但是你写的大部分程序的时间实际上都消耗在了IO操作上

    遇到高计算型

      开进程 4个进程  每个进程里开n个线程

      换个解释器 

    from threading import Thread
    import time
    
    #Process
    #Thread
    def func():
        print("start")
        time.sleep(1)
        print("end")
    
    
    if __name__ =="__main__":
        t =Thread(target=func)
        t.start()
        for i in range(5):
            print("主线程")
            time.sleep(0.3)
  • 相关阅读:
    程序员面试金典题解
    Leetcode 解题报告
    常用小算法
    BestCoder 百度之星2016
    jQuery 删除或是清空某个HTML元素。
    dataTable 默认排序设定
    jquery tableExport 插件导出excel (无乱码) 比较简单的表格
    php 根据周数获取当周的开始日期与最后日期
    thinkphp5使用load和use引入第三方类
    判断checkbox是否选中
  • 原文地址:https://www.cnblogs.com/liurenli/p/10102071.html
Copyright © 2020-2023  润新知