多线程介绍与threading模块应用以及使用Thread类创建多线程
1.多线程:
多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。线程是在同一时间需要完成多项任务的时候实现的。
最简单的比喻多线程就像火车的每一节车厢,而进程则是火车。车厢离开火车是无法跑动的,同理火车也不可能只有一节车厢。多线程的出现就是为了提高效率。同时它的出现也带来了一些问题。
线程与进程的关系:
进程就是一个应用程序在处理机上的一次执行过程,它是一个动态的概念,而线程是进程中的一部分,进程包含多个线程在运行。一个程序运行至少一个进程,一个进程里面至少包含一个线程,线程是进程的组成部分。
2.threading模块的简单使用:
import threading
import time
def coding():for x in range(3):print('正在写代码...')time.sleep(1)
def drawing():for x in range(3):print('正在画图%s'%threading.current_thread())#查看线程time.sleep(1)
def main():t1 = threading.Thread(target=coding) #创建线程t2 = threading.Thread(target=drawing)t1.start() #启动线程t2.start()# print(threading.enumerate())#查看线程数量与名字
if __name__ == '__main__':main()
3.使用Thread类创建多线程:
为了让线程代码更好的封装。可以使用threading 模块下的Thread类,继承自这个类,然后实现run 方法。线程就会自动运行run方法中的代码。
import threading
import timeclass CodingThread(threading.Thread):def run(self):for x in range(3):print('正在写代码%s' % threading.current_thread())time.sleep(1)class DrawingThread(threading.Thread):def run(self):for x in range(3):print('正在画图%s' % threading.current_thread())time.sleep(1)def main():t1 = CodingThread()t2 = DrawingThread()t1.start()t2.start()if __name__ == '__main__':main()
转载于:https://www.cnblogs.com/zyde-2893/p/11291784.html
多线程介绍与threading模块应用以及使用Thread类创建多线程相关推荐
- Java继承Thread类创建多线程
Java继承Thread类创建多线程 单线程示例 示例,Example01.java public class Example01{public static void main(String[] a ...
- 多线程Thread类创建多线程
package com.ajax; //多线程Thread类创建多线程 public class Example02 {public static void main(String[] args){n ...
- python 测试 多线程 _thread和threading模块 线程同步,线程优先级队列
文章目录 python 多线程简介 Python中使用线程的两种方式 1.函数式 示例 2.线程模块 示例 线程同步 示例 线程优先级队列( Queue)[暂时没用到,没仔细看] 示例 其他 thre ...
- 29-30Python多线程、多线程、使用threading模块创建线程;JSON数据解析、编码为JSON类型转换对应表、Python类型转换对应表、json.dumps与json.loads
29Python3多线程 多线程类似于同时执行多个不同程序,多线程运行有如下优点: 使用线程可以把占据长时间的程序中的任务放到后台去处理. 用户界面可以更加吸引人,比如用户点击了一个按钮去触发某些 ...
- 多线程之继承Thread类及多线程内存分析
*创建多线程的一种方式:继承Thread类 * java.lang.Thread是描述多线程的类,要实现多线程程序,一种方式就是继承Thread类 * 1.创建一个类Mythread让其extends ...
- python_day29_通过类创建多线程_队列
#Author:'haijing'#date:2018/12/20import threadingimport time#通过类创建多线程 class MyThread(threading.Threa ...
- 继承Thread类使用多线程
java实现多线程有两种方式,一种是继承Thread类,另外一种就是实现Runnable接口. 两种实现方法的优缺点: 使用Thread类实现多线程局限性就是不支持多继承,因为java是不支持类多继承 ...
- 多线程Runnable类创建多线程
package com.ajax; //多线程Runnable类创建多线程 public class Example01 {public static void main(String [] args ...
- java thread 多线程_java用Thread方式创建多线程
进程:一个正在执行的程序,每一个进程都有一个执行顺序,该 顺序是一个执行路径,或者叫一个控制单元. 线程:进程中一个独立的控制单元.线程控制着进程的执行. 一个进程中至少有一个线程. java VM中 ...
最新文章
- 【JavaScript】JavaScript基础-变量、运算符与控制语句
- POJ 2187 Beauty Contest( 凸包求最远点对 )
- python在线工具-6 种 Python 数据可视化工具
- 现代密码学2.4--香农定理/Shannon Theorem:完美安全的充分必要条件
- Android之Activity **** has leaked window android.widget.PopupWindow$PopupDecorView that was originall
- 一步一步写STL:空间配置器(1)
- UpdateProgress控件
- 程序员如何成为编程高手并以此创业
- 不能包含全角 正则_java常用正则表达式
- js保留n位小数——toFiexed()
- 图解Linux网络虚拟化相关的虚拟网卡-VETH/MACVLAN/MACVTAP/IPVLAN
- php中读取session,php中如何注册和读取Session会话
- 本科大学计算机专业排名2015,2015年美国大学本科计算机专业排名
- matlab张正友摄像机标定算法应用,张正友摄像机标定的研究(MATLAB+OpenCV)
- while 循环语法结构
- OpenCV学习日记(2)
- 服务器打死了怎么修复,yum把自己搞死了 然后又把服务器弄死了(yum命令卡死的解决办法)...
- 云ERP有什么优势?功能有哪些?
- [usaco 2009 dec]游荡的奶牛
- 我对北理FTP联盟的建议