python 并发编程 多线程 开启线程的两种方式
一 threading模块介绍
multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性
二 开启线程的两种方式
第一种
每造一个进程,默认有一个线程,就是主线程。
进程要想执行,要先造一个主线程,然后由这个进程内的线程去运行代码
from threading import Thread
import time def task(name): print("%s is running" % name)
time.sleep(3)
print("%s is done" % name) if __name__ == "__main__": # 实例化
# args 为函数传参数
t = Thread(target=task, args=("子线程1",))
# 开启子线程
t.start() # 仅仅只是给操作系统发送一个信号 与平常print没有什么区别 print("主线程") '''
子线程1 is running
主线程
子线程1 is done
'''
上面程序开启了一个进程,两个线程,一个主线程,一个子线程。 主线程给操作系统发送信号,开启子线程
第二种
自己写一个子类去继承他
from threading import Thread
import time # 自己写一个子类去继承他 不用默认的类
# Thread的类传进去 class MyThread(Thread): # 重写了init方法 父类就被覆盖掉
def __init__(self, name): # 重用父类 因为父类还有很多有用功能,继承父类
super().__init__()
self.name = name # 方法一定要写run
def run(self):
print("%s is running" % self.name)
time.sleep(3)
print("%s is done" % self.name) if __name__ == "__main__": # 实例化 直接用自己自定义的类开子线程
# args 为函数传参数
t = MyThread("子线程")
#t 开启子线程
t.start() # 仅仅只是给操作系统发送一个信号 与平常print没有什么区别 # t.start() 本质是调用run方法
print("主线程") '''
子线程 is running
主线程
子线程 is done
'''
编写一个简单的文本处理工具,具备三个任务,一个接收用户输入,一个将用户输入的内容格式化成大写,一个将格式化后的结果存入文件
'''
需求:
编写一个简单的文本处理工具,具备三个任务,一个接收用户输入,一个将用户输入的内容格式化成大写,一个将格式化后的结果存入文件
''' import json num = input_user = input(">>>:").strip()
num = num.upper() with open("1.txt", "w") as f:
json.dump(num, f)
python 并发编程 多线程 开启线程的两种方式的更多相关文章
- python 之 并发编程(开启子进程的两种方式,进程对象的属性)
第九章并发编程 同一个程序执行多次是多个进程 import time import os print('爹是:',os.getppid()) #父进程PID,(pycharm) print('me ...
- python 之 并发编程(线程理论,开启线程的两种方式,进程与线程的区别,线程对象的其他方法)
9.9 线程理论 1.什么是线程 线程指的是一条流水线的工作过程 进程根本就不是一个执行单位,进程其实是一个资源单位,一个进程内自带一个线程,线程才是执行单位 2.进程VS线程 同一进程内的线程们共享 ...
- 并发编程 - 线程 - 1.开启线程的两种方式/2.进程与线程的区别/3.Thread对象的其他属性或方法/4.守护线程
1.开启线程的两种方式: 进程,线程: 进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集合)而线程才是cpu上的执行单位) 1.同一个进程内的多个线程共享该进程内的地址资源 2.创建线 ...
- Python 35 线程(1)线程理论、开启线程的两种方式
一:线程理论 1 什么是线程 进程其实一个资源单位,而进程内的线程才是cpu上的执行单位 线程其实指的就是代码的执行过程2 为何要用线程 线程vs进程 1. 同一进程下的多个线程共享该进程 ...
- 并发编程 ~~~ 多进程~~~进程创建的两种方式, 进程pid, 验证进程之间的空间隔离, 进程对象join方法, 进程对象其他属性
一 进程创建的两种方式 from multiprocessing import Process import time def task(name): print(f'{name} is runnin ...
- python 并发编程 多线程 守护线程
做完工作这个进程就应该被销毁 单线程情况: 一个进程 ,默认有一个主线程 ,这个主线程执行完代码后 ,就应该自动销毁.然后进程也销毁. 多线程情况: 主线程代表进程结束 一个进程可以开多个线程,默认开 ...
- Java多线程——创建线程的两种方式
创建线程方式一:继承Thread类. 步骤:1,定义一个类继承Thread类.2,覆盖Thread类中的run方法.3,直接创建Thread的子类对象创建线程.4,调用start方法开启线程并调用线程 ...
- python 并发编程 多线程 目录
线程理论 python 并发编程 多线程 开启线程的两种方式 python 并发编程 多线程与多进程的区别 python 并发编程 多线程 Thread对象的其他属性或方法 python 并发编程 多 ...
- python并发编程&多线程(二)
前导理论知识见:python并发编程&多线程(一) 一 threading模块介绍 multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性 官网链 ...
随机推荐
- prometheus 标签修改promSQL
relabel_configs 根据prometheus 监控k8s配置文件中学习 未修改前默认配置文件: 网页显示: 修改配置文件后: 网页显示: 服务发现网页: 总结: 在数据采集之前对任何目标的 ...
- QT:提高QT Creator编译速度,配置预编译头Stable.h
提高QT Creator编译速度,配置预编译头Stable.h QT Creator支持预编译头提高编辑速度,网上有些教程写得不详细,走了弯路,具体实现方法如下. (1)工程.PRO文件加入下面代码 ...
- HGOI20190710 题解
Problem A 游戏 有$n (1 \leq n \leq 5)$个硬币初始以"0"(正面),"1"(反面) $m (1 \leq m \leq m)$种操 ...
- sh_04_列表排序
sh_04_列表排序 name_list = ["zhangsan", "lisi", "wangwu", "wangxiaoer ...
- 01Two Sum题解
Tow Sum 原题概述: Given an array of integers, return indices of the two numbers such that they add up to ...
- 讨厌的adb占用
adb重启的方法 2018年06月13日 14:59:47 丽闪无敌 阅读数:11969 执行以下命令: D:\android-sdks\platform-tools>adb kill-se ...
- idea 下运行安卓项目
修改 gralde 路径修改安卓sdk路径进入project structure 设置 Project settings / Project /project SDK 选择 Android API 2 ...
- 套接字选项 之 SO_REUSEADDR && SO_REUSEPORT
说明 本文下面内容基本上是截取自stackoverflow,针对这两个选项,在另外一篇文章中做了总结,请移步<Linux TCP套接字选项 之 SO_REUSEADDR && S ...
- 百度echars 插件 横坐标信息倾斜显示
只需要 在xAxis 中加入 axisLabel:{ interval:0,//横轴信息全部显示 ...
- var $this = $(this)
jQuery: What’s the Difference Between $(this), $this, and this? What about $this? $this is a little ...