• 网络线程


    多进程 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)
  • 相关阅读:
    CSS绿色导航代码
    一款简单另类的CSS导航菜单代码
    来自腾讯QQ网站首页的选项卡菜单代码
    JavaScript学习笔记之应用技巧二
    JavaScript学习笔记之创建字符串比较
    Delegate学习笔记
    ADO.NET Entity FrameWork学习笔记
    Reflector学习之特性理解
    字符串范围截取(转载)
    Delegate学习笔记之事件订阅
  • 原文地址:https://www.cnblogs.com/liurenli/p/10102071.html
Copyright © 2020-2023  润新知