# 多线程  VS 多进程

- 程序:一堆代码以文本形式存入一个文档

- 进程:  程序运行的一个状态

  -   包含地址空间、内存、数据栈等

  -  每个进程由自己完全独立的运行环境,多进程共享数据是一个问题

- 线程

  -  一个进程的独立运行片段,一个进程可以由多个线程

  -  轻量化的进程

  -  一个进程的多个线程间共享数据和上下文运行环境

  -  共享互斥问题

- 全局解释器锁(GIL)

  -  Python代码的执行是由python虚拟机进行控制

  -  在主循环中只有一个控制线程在执行

- Python包

  -  thread:有问题,不好用,python3改成了_thread

  -  threading:通行的包

- 案例01:顺序执行,耗时比较长

- 案例02:改用多线程,缩短总时间,使用_thread

- 案例03:多线程,传参数

- threading的使用

  - 直接利用threading.Thread生成Thread实例

    1、t = threading.Thread(target=xxx, args=(xxx, ))

    2、t.start():启动多线程

    3、t.join():等待多线程执行完成

    4、案例04

    5、案例05:加入join后比较跟案例04的结果的异同

    - 守护线程 - daemon

      -   如果在程序中将子线程设置成守护线程则子线程会在主线程结束的时候自动退出

      -  一般认为,守护线程不重要或者不允许离开主线程独立运行

      -  守护线程案例能否有效果跟环境相关

      -   案例06非守护线程

      -  案例07守护线程

    - 线程常用属性

      -  threading.currentThread:返回当前线程变量

      -  threading.enumerate:返回一个包含正在运行的线程的list,正在运行的线程指的是县城启动后

      -  threading.activeCount:返回正在运行的线程数量,效果跟 len(threading.enumerate)

      - thr.setName: 给线程设置名字

      - thr.getName: 得到线程的名字 

    - 直接继承自threading.Thread

      - 直接继承Thread

      - 重写run函数

      - 类实例可以直接运行

      - 案例09

    - 直接继承自threading.Thread

      - 直接继承Thread

      - 重写run函数

      - 类实例可以直接运行

      - 案例09 

- 案例10 工业风案例 

-    共享变量

    共享变量: 当多个线程同时访问一个变量的时候,会产生共享变量的问题

    

   

多线程2.md的更多相关文章

  1. VC 运行时库 /MD、/MDd 和 /MT、/MTd

    这里总结下他们的区别,后面的那个'd'是代表DEBUG版本,没有'd'的就是RELEASE版本了. 首先说/MT /MT是 "multithread, static version ” 意思 ...

  2. /MD, /MDD, /ML, /MT,/MTD(使用运行时库)

    1. VC编译选项 多线程(/MT)多线程调试(/MTd)多线程 DLL (/MD)多线程调试 DLL (/MDd) 2. C 运行时库                                 ...

  3. Error C1189: #error: Please use the /MD switch for _AFXDLL builds

    在VS 2013中编译程序时出现错误: 错误提示1: error C1189: #error : Building MFC application with /MD[d] (CRT dll versi ...

  4. VC编译选项 多线程(/MT)

    VC编译选项 多线程(/MT)多线程调试(/MTd)多线程 DLL (/MD)多线程调试 DLL (/MDd)C 运行时库                        库文件Single threa ...

  5. VC编译选项 md /mdd /ml /mt/mtd

    VC编译选项 多线程(/MT)多线程调试(/MTd)多线程 DLL (/MD)多线程调试 DLL (/MDd)C 运行时库                        库文件Single threa ...

  6. Error C1189: #error: Please use the /MD switch for _AFXDLL builds(转)

    原文转自 https://www.cnblogs.com/zwh0214/p/6048360.html 在VS 2013中编译程序时出现错误: 错误提示1: error C1189: #error : ...

  7. VC运行时库(/MD、/MT等)

    VC项目属性→配置属性→C/C++→代码生成→运行时库 可以采用的方式有:多线程(/MT).多线程调试(/MTd).多线程DLL(/MD).多线程调试DLL(/MDd).单线程(/ML).单线程调试( ...

  8. VS 运行库MT、MD的区别

    https://www.jianshu.com/p/f43afc1d5946 VC项目属性→配置属性→C/C++→代码生成→运行时库 可以采用的方式有:多线程(/MT).多线程调试(/MTd).多线程 ...

  9. VC运行时库/MD、/MDd、/MT、/MTd说明

    http://blog.csdn.net/holybin/article/details/26134153 VC运行时库设置:VC项目属性->配置属性->C/C++->代码生成-&g ...

随机推荐

  1. [IR] Advanced XML Compression - ISX

    Ori paper: http://www.cse.unsw.edu.au/~wong/papers/www07.pdf ISX Requirements 1 Space does matter fo ...

  2. 理解Generic.xaml和Themes

    "Generic.xaml"这个名称并非偶然 通过上面的叙述,你可能会有冲动将Generic.xaml中的Style代码剪切出来,粘贴到任何一个我们的控件可以找到的地方,然后把Ge ...

  3. 127、Universal-Image-Loader解析(转载)(图片加载)

    (一)——ImageLoaderConfiguration的详细配置http://www.cnblogs.com/tianzhijiexian/p/4034215.html (二)——DisplayI ...

  4. Unity3D Shader 模型流光效果

    Shader "Custom/FlowColor" { Properties { _MainTex ("Base (RGB)", 2D) = "whi ...

  5. C# MVC+EF—WebApi

    上一篇搭建了页面,这里写下功能. 这里我用WebApi实现数据的增删改查. 一.新建Controller 为了区分明确,我在Controller文件夹下建立一个WebApi文件夹存放. 选中文件夹右键 ...

  6. 壁虎书2 End-to-End Machine Learning Project

    the main steps: 1. look at the big picture 2. get the data 3. discover and visualize the data to gai ...

  7. SmartStore.Net、NopCommerce 全局异常处理、依赖注入、代码研究

    以下是本人最近对NopCommerce和SmartStore.net部分代码的研究和总结,主要集中于:依赖注入.异常处理.对象映射.系统缓存.日志这些方面,供大家参考. NOP 3.8 /// < ...

  8. python web篇 创建数据库

    python3 manage.py migrate ls sqlite3 使用单文件数据库,管理方便 运行测试 python manage.py runserver 输入http://127.0.0. ...

  9. tensoflow模型中提示:ValueError: Variable rnn/basic_rnn_cell/kernel already exists, disallowed. Did you mean to set reuse=True or reuse=tf.AUTO_REUSE in VarScope? 解决办法

    在利用tensorflow框架进行模型训练的时候,有时我们需要多次训练对结果求均值来得到一个均衡的评测结论.比如训练十次求平均值.但是tf的本质就是图,当变量第一次定义使用后,第二次再使用就是提示: ...

  10. Away3D引擎学习入门笔记

    (1). 准备工作,一些必须知道的东西 (创建时间:2014-06-05) A.必要的开发语言基础.至少要懂点ActionScript 3.0语法(ActionScript 3.0语法及API参考), ...