多线程2.md
# 多线程 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的更多相关文章
- VC 运行时库 /MD、/MDd 和 /MT、/MTd
这里总结下他们的区别,后面的那个'd'是代表DEBUG版本,没有'd'的就是RELEASE版本了. 首先说/MT /MT是 "multithread, static version ” 意思 ...
- /MD, /MDD, /ML, /MT,/MTD(使用运行时库)
1. VC编译选项 多线程(/MT)多线程调试(/MTd)多线程 DLL (/MD)多线程调试 DLL (/MDd) 2. C 运行时库 ...
- 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 ...
- VC编译选项 多线程(/MT)
VC编译选项 多线程(/MT)多线程调试(/MTd)多线程 DLL (/MD)多线程调试 DLL (/MDd)C 运行时库 库文件Single threa ...
- VC编译选项 md /mdd /ml /mt/mtd
VC编译选项 多线程(/MT)多线程调试(/MTd)多线程 DLL (/MD)多线程调试 DLL (/MDd)C 运行时库 库文件Single threa ...
- 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 : ...
- VC运行时库(/MD、/MT等)
VC项目属性→配置属性→C/C++→代码生成→运行时库 可以采用的方式有:多线程(/MT).多线程调试(/MTd).多线程DLL(/MD).多线程调试DLL(/MDd).单线程(/ML).单线程调试( ...
- VS 运行库MT、MD的区别
https://www.jianshu.com/p/f43afc1d5946 VC项目属性→配置属性→C/C++→代码生成→运行时库 可以采用的方式有:多线程(/MT).多线程调试(/MTd).多线程 ...
- VC运行时库/MD、/MDd、/MT、/MTd说明
http://blog.csdn.net/holybin/article/details/26134153 VC运行时库设置:VC项目属性->配置属性->C/C++->代码生成-&g ...
随机推荐
- [hadoop] hadoop 运行 wordcount
讲准备好的文本文件放到hdfs中 执行 hadoop 安装包中的例子 [root@hadoop01 mapreduce]# hadoop jar hadoop-mapreduce-examples-2 ...
- [Bayes] Understanding Bayes: Updating priors via the likelihood
From: https://alexanderetz.com/2015/07/25/understanding-bayes-updating-priors-via-the-likelihood/ Re ...
- 解决wireshark检测不到网卡的问题
第一步 1.打开windows设备管理器. 2.查看-显示隐藏的设备 3.非即插即用驱动程序 4.NetGroup Packet Filter Driver 右键属性---驱动程序---启动类型,修改 ...
- js中的try/catch
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- linux下的文件解压命令
说一下tar命令的参数含义:z,使用gzip解压,x:extract解压,v:显示详细信息,f:使用归档在当前文件夹. 在解压时出现了解压失败,原因是没有sudo,无法创建文件夹.
- Nodejs----基本数据类型
Nodejs基本数据类型: nodejs的基础JavaScript(脚本语言). 而大多数的
- Caused by: org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Cannot determine embedded database driver class for database type NONE. If you want an embe
Caused by: org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationEx ...
- uploadify中文开发文档,解决php多图上传
图片上传好用插件有,比如 uploadify ueditor html5的各种ajax上传插件,大部分都是异步,返回只是true之类,有些时候需要上传图片需要一起上传,其实可以通过操作流程来避免这个 ...
- IO 流小记录
File类 构造函数: FIle file = new File(path); 常用函数: 是否存在: file.exists() 文件名: file.getName() 父目录: file.ge ...
- Docker、kubernetes、微服务、SpringBoot/Cloud...好乱!到底要不要学?
Docker.微服务日益火热的今天,相信标题上这些名词大家都不陌生.但也相信有很多同学并不够清楚他们的概念,不理解它们的关系,也可能有这样的疑惑:不知道跟我有没有关系?要不要学习?怎么去学习?学哪些东 ...