• 多线程


    1.什么是多线程

    多进程和多线程都是用于提高程序的效率

    多进程:核心是多道技术,本质上就是切换加保存状态,当IO比较多的时候可以提高

    效率

    什么是多线程? 程序的运行线路

    线程相当于流水线,包含了程序的具体执行步骤

    进程相相当于一个车间

    进程中包含了运行该程序所需要的所有资源,进程是一个资源单位,线程是CPU的
    最小执行单位

    每一个进程一旦被创建就默认开启了一条线程,这条线程称之为主线程

    进程与线程的关系

    进程包含线程,线程依赖进程

    2.为什么使用线程?

    为了提高程序效率,使用线程而不用进程的原因是:进程对操作系统的资源消耗非常高

    线程如何提高效率:多线程可以使CPU在一个进程内部切换,聪哥提高CPU的占用率

    3.如何使用多线程?

    两种开启线程的方式 1.实例化Thread 2.继承Thread类 覆盖run方法

    什么时间需要开启多线程? 1.当程序当中遇到IO的时候

    当程序中是纯计算任务的时候,不需要开启多线程,开启之后也无法提高效率

    4.进程和线程使用区别?

    1.进程对操作系统的资源消耗非常高,而线程低(比进程低10-100倍)

    2.在同一个进程中,多个线程之间资源是共享的

    5.守护线程(同一个进程间)

    守护线程:会在所有非守护线程结束后结束

    守护进程: 守护进程会在被守护进程死亡之后死亡

    同一个进程,可以有多个守护线程

    6.线程中常用属性


    Thread实例对象的方法
    # isAlive(): 返回线程是否活动的。
    # getName(): 返回线程名。
    # setName(): 设置线程名。

    threading模块提供的一些方法:
    # threading.currentThread(): 返回当前的线程变量。
    # threading.enumerate(): 返回一个包含正在运行的线程的list.正在运行指线程启动后、结束前,不包括启动前和终止后的线程。
    # threading.activeCount(): 返回正在运行的线程数量,与len(threading.enumerate())有相同的结果。

    7. 什么时候使用互斥锁?

    当多个进程或多个线程需要修改同一份数据时,可能会造成数据的错乱,所以必须得加

    8. 信号量

    也是一种锁,特点是:可以设置数据被几个线程(进程)共享的次数

    普通锁一旦加锁则意味着这数据只能同时被一个线程使用,信号量可以让这个数据在

    同一时间让多个线程使用

    学习,学习,学习! 学习是为了更好的未来,不要让别人瞧不起你,加油!!!
  • 相关阅读:
    UVa 839 Not so Mobile
    UVa 548 Tree(中序遍历+后序遍历)
    UVa-679 Dropping Balls(二叉树的编号)
    Vue练习三十一:04_04_arguments应用_求出参数的和
    Vue练习三十:04_03_自动改变方向播放_幻灯片效果
    Vue练习二十九:04_02_自动播放_幻灯片效果
    Vue练习二十八:04_01_transition应用(未完成)
    Vue练习二十七:03_09_倒计时时钟
    Vue练习二十六:03_08_简易网页时钟
    Vue练习二十五:03_07_网页计算器
  • 原文地址:https://www.cnblogs.com/yangyufeng/p/10210640.html
Copyright © 2020-2023  润新知