threading多线程模块
操作系统:(承上启下作用,起到硬件与应用程序之间的连接作用(或者接口作用)) 进程:本质上是一段程序运行的过程,是一个抽象的概念。 进程的目的就是切换,也就是程序A与程序B矛盾时,可以切换执行,提高CPU的效率。 进程包括三部分:程序,数据集,程序控制块三个部分。 程序是一个实体,进程是一个抽象。数据集相当于输入。程序控制块用于切换时,记录上一个进程执行到哪等信息。 说道切换,可以是一个进程遇到IO操作的时候,执行切换(因为IO时,CPU空闲);也可以根据时间序列切换等等。 如果只有一个CPU,进程切换只是实现并发(感觉看起来一起执行,比如既可以上网,也可以听歌,实际上不是同时执行), 并行至少需要多核(多个cpu).这样假如两个CPU同时对应4个任务,这样就既有并行也有并发。 线程:有了进程后,可以实现一边玩游戏一边听音乐了。假设一个文本程序,当键盘输入的同时,需要屏幕显示,并且同时刻录到磁盘中。 如果只是用一个进程的话,只能安顺序执行,也就是说键盘输入的同时,屏幕上是看不到的,要等输入完。 因此需要多进程,但是一个程序就这样分了,搞得跟多个程序似的,并且多进程切换过程会降低效率。 线程其实可以理解为一个进程中微进程,它共享一个进程中的资源集,线程的切换也比进程的切换省事。比如扣扣,既可以一边聊天, 又可以一边接收邮箱信息。它们共享一个用户的信息,状态什么的。 进程与线程区别: 1.一个程序至少有一个进程,一个进程至少有一个线程。(进程可以理解成线程的容器) 2.进程在执行过程中拥有独立的内存单元,而多个线程共享(一个进程)内存,从而极大地提高了程序的运行效率 3.线程是最小的执行单元,进程是最小的资源单位(操作系统分资源最小分发进程)。线程不可能脱离进程独立存在 等等 下面看两个简单的多线程例子:
1 import threading 2 import time 3 4 def music(): 5 print("begin to listen %s"%time.ctime()) 6 time.sleep(3) 7 print("stop listening %s" % time.ctime()) 8 9 def game(): 10 print("begin to game %s"%time.ctime()) 11 time.sleep(5) 12 print("stop gaming %s" % time.ctime()) 13 14 15 if __name__ == '__main__': 16 17 t1 = threading.Thread(target=music) 18 19 t2 = threading.Thread(target=game) 20 21 t1.start() # 与lesson2放在上面是一样的 22 t2.start() 23 24 t1.join() # join这个方法是子线程对象调用的函数,函数的意思是t1这个子线等待结束后,主线程才能走 25 # t2.join() 26 27 # 与join对应的.setDaemon是守护线程,比如T1设置为守护线程, 28 # 意思就是t1这个线程跟主线程一起退,主线程结束后,它问一下其他非守护线程,其他的非守护线程也都结束,它结束 29 30 print("ending............")
View Code
1 ''' 2 线程,threading可以开线程,里面实例对象有几个重要的方法,比如:.start,.join,.setDaemon 3 t = threading.Thread() 4 以上是t的方法(实例化的属性) 5 另外threading模块还有一些方法: 6 threading.currentThread() 返回当前的线程变量 7 threading.enumerate() 返回一个包含正在运行的线程的list.正在运行指线程启动后,结束前。 8 threading.activeCount() 返回正在运行的线程数量,与len(threading.enumerate())有相同的结果 9 ''' 10 11 import threading # 线程 12 import time 13 14 15 def Hi(num, i): 16 print("hello %s" % num) 17 time.sleep(int(i)) 18 19 20 if __name__ == '__main__': 21 22 # 主线程下面开了两个子线程 23 24 t1 = threading.Thread(target=Hi, args=(10,2)) # 实例化一个线程对象,开一个子线程1 25 t1.start() 26 27 t2 = threading.Thread(target=Hi, args=(9,7)) # 实例化一个线程对象,开一个子线程2 28 t2.start() 29 30 print("ending.................")
View Code
转载于:https://www.cnblogs.com/maxiaonong/p/9500372.html
threading多线程模块相关推荐
- python 主线程_Python threading多线程模块
Python是支持使用多线程的,程序代码可以在一个进程空间中操作管理多个执行的线程,python模块下载时要记得,这个库叫做 threading. 一.threading模块简介 在Python多线程 ...
- Python学习心得(七) 深入理解threading多线程模块
Python提供了多个模块来支持多线程编程,包括thread.threading和queue模块等. thread模块提供了基本的线程和锁定支持:而threading模块提供了更高级别.功能更全面的线 ...
- python:threading多线程模块-使用Queue模块保持线程同步
利用Queue对象先进先出的特性,将每个生产者的数据一次存入队列,而每个消费者将依次从队列中取出数据 import threading # 导入threading模块 import Queue # 导 ...
- python——Tkinter图形化界面及threading多线程
Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macinto ...
- python多线程下载大文件_Python threading多线程断点下载文件的方法
这是玩蛇网一篇关于Python多线程下载文件方法的代码实例.文中应用到的python模块和方法有httplib.Python urllib2.Python threading多线程模块.python ...
- python 多线程 模块_Python多线程threading和multiprocessing模块实例解析
本文研究的主要是Python多线程threading和multiprocessing模块的相关内容,具体介绍如下. 线程是一个进程的实体,是由表示程序运行状态的寄存器(如程序计数器.栈指针)以及堆栈组 ...
- python实现多线程的三种方法threading.Thread(模块)的继承实现和函数实现;以及concurrent.futures模块的线程池实现
1.threading.Thread模块继承实现: import threading import timeclass TestThread(threading.Thread):def __init_ ...
- 多线程介绍和多线程模块-lock-互斥锁
多线程介绍和多线程模块 线程的特点: 线程的生命周期 开始 运行 结束 线程的退出: 进程执行完成 线程的退出方法 python的系统推出 模块函数 start_new_thread(func, ar ...
- 用生动的案例一步步带你学会python多线程模块
鱼和熊掌不可兼得 鱼,我所欲也,熊掌,亦我所欲也,二者不可得兼,舍鱼而取熊掌者也. 从6月开始写公众号,连着四个月一直尽量保证一周五更,结果整天熬夜搞的身体素质骤降.十一休假决定暂时将公众号放放,好好 ...
最新文章
- chattr 文件隐藏属性
- 合并远程仓库到本地_git远程仓库
- DotNet关键知识点——WPF篇(一)(范德成编辑批注版)
- java8 streams_另一个Java 8 Lamdbas和Streams示例
- 《MySQL tips:并发查询与并发连接区别》
- C语言求x和y的乘积,计算方程式,求x,C语言中怎么计算x,y的值?
- 数据结构之 顺序栈、共享栈、链栈
- 【会议】2008-10-27
- 开源软件使用_亲爱的父母:让您的孩子使用开源软件
- 吃货的第一要诀 | 在马来西亚这么吃才爽!
- 把计算机怎么连接手机的网络助手在哪里,手机连接电脑上网,详细教您手机如何连接电脑上网...
- iMazing有哪些好用的功能
- 深度学习中常用的数据集
- linux目录常用命令
- ios共享账号公众号_我的世界 minecraft 国际版 非网易版 ios下载账号分享 公众号 iphone ipad...
- SAP BAPI_SALESORDER_CREATEFROMDAT2 创建销售订单
- 数理统计学:世纪末的回顾与展望(陈希孺)
- MyBatis可视化代码生成工具
- Java连接redis集群报错,connection refused 和Could not get a resource from the pool
- SpringBoot 项目实现 Excel 导入导出功能
热门文章
- Git2.29让Git成功“牵 手”Gerrit
- ThingJS:部署物联网不用买买买,互联互动是切入点
- ASM 常用概念解释
- alter system switch logfile和alter system archive log current的区别
- 从DUMP函数说开去
- windows当代理服务器-CCProx的使用
- CCF - 201503-3 - 节日
- ubuntu16.04下安装emacs
- StrutsPreparedAndExcuteFilter与Interceptor
- Lua的继承(利用setmetatable)