zoukankan      html  css  js  c++  java
  • Python中的多线程编程

    前言:
    线程是操作系统能够进行运算调度的最小单位(程序执行流的最小单元)
    它被包含在进程之中,是进程中的实际运作单位
    一个进程中可以并发多个线程每条线程并行执行不同的任务
    (线程是进程中的一个实体,是被系统独立调度和分派的基本单元)
    每一个进程启动时都会最先产生一个线程,即主线程
    然后主线程会再创建其他的子线程

    这里写图片描述

    这里写图片描述

    一个多线程程序,当主线程创建之后又有其他的子线程,就存在执行完成的先后顺序

    这里写图片描述

    join()括号中可以写主线程等待子线程的时间
    不写表示等待子线程执行完主线程再开始执行

    这里写图片描述

    创建子线程来模拟同时看电影和听音乐

    运行结果如下,可以看到看电影和听音乐同时进行
    这里写图片描述

    线程不安全:就是不提供数据访问保护,在多线程环境中对数据进行修改,会出现数据不一致的情况。
    线程安全:就是多线程环境中有对全局变量的变动时,需要对执行的代码块采用锁机制,当一个线程访问到某个数据时,其他线程需要等待当前线程执行完该代码块才可执行,雅思辅导不会出现数据不一致或者数据被污染。

    如果一段代码在被多个线程执行,如果每次运行结果和单线程运行的结果是一样的,而且其他变量的值和预期一样,就是线程安全的。

    线程安全主要由对有全局变量或静态变量有修改动作而引起的。

    这里写图片描述
    进行改进:

    这里写图片描述

  • 相关阅读:
    ontentEditable和designMode的区别
    execCommand、queryCommandState
    ios微信h5音频audio无法自动播放
    微信二次分享图片不显示
    Airbnb javascript编码规范
    array reduce
    适配iPhoneX全屏
    web前端性能优化
    requestAnimationFrame实现动画
    js 中的forEach,for in ,for of 的使用
  • 原文地址:https://www.cnblogs.com/zhangyanran/p/9896016.html
Copyright © 2011-2022 走看看