潭州课堂25班:Ph201805201 并发(进程,线程)二 第十二课 (课堂笔记
线程与进程的其他相关操作
import threading # 线程
import multiprocessing # 进程
import socket
import time def wo():
global a
time.sleep(5)
a = 5 if __name__ == '__main__': # 在 win 系统下
p = multiprocessing.Process(target=wo) # 生成进程
print(p) # 对象 名字 <Process(Process-1, initial)>
p1 = multiprocessing.Process(target=wo, name='对象名字') # <Process(对象名字, initial)>
p1.name = '改名字' # 可以改个名字 <Process(改名字, initial)>
print(p1) # 对象 名字
# <Process(Process-1, initial)>
# 可以指定名字
# p = threading.Thread(target=wo) # 生成线程
# print('a:',p.pid) # 进程还没运行 : a: None
print('a:',p.ident) # 线程还没运行 a: None
p.start() # 运行之后:
# print('a:', p.pid) # a: 12248 是进程 PID
print('a:', p.ident) # a: 24416 是线程 ident # 在进程里 pid 是 ident, 在线程中没有 pid,只有 ident
# 线程与进程操作类似
import threading # 线程
import multiprocessing # 进程
import socket
import time def wo():
global a
a = 5
time.sleep(15)
print('子进程结束') if __name__ == '__main__': # 在 win 系统下
p = multiprocessing.Process(target=wo)
p.start()
time.sleep(2)
p.join() # 主进程将停在这等待子进程 , p.terminate() # 主进程结束后,子进程立马关闭,未完成任务不再运行,
# 但是线程没有这个方法,不能中途停止,只能等到他任务完成, print('主进程结束')
进程的生存状态
# -*- coding: utf-8 -*-
# 斌彬电脑
# @Time : 2018/7/18 0018 0:13
import threading # 线程
import multiprocessing # 进程
import socket
import time def wo():
global a
a = 5
time.sleep(15) if __name__ == '__main__': # 在 win 系统下
p = multiprocessing.Process(target=wo)
print(p) # initial 对象生成后的初始化,<Process(Process-1, initial)>
p.start()
print(p) # started 运行状态 <Process(Process-1, started)>
print(p.is_alive()) # 只有在运行中时才返回 True, p.join() # 等待任务完毕
print(p) # stopped 进程结束 <Process(Process-1, stopped)>
线程与进程一样的操作,
守护进程
import threading # 线程
import multiprocessing # 进程
import socket
import time def wo():
print('a')
time.sleep(6)
print('b') if __name__ == '__main__': # 在 win 系统下
p = multiprocessing.Process(target=wo,daemon=True)
p1 = multiprocessing.Process(target=wo)
p1.daemon = True
# daemon=True 时,这个进程成为一个守护进程,
# 只要运行完代码,直接关闭所有, p.start()
print('c')
是为了程序完毕后释放被占到用的资源,( join() daemon)
用面向对象的方式来使用进程和线程,
import threading # 线程
import multiprocessing # 进程
import socket
import time class MyProcess(multiprocessing.Process):
'''继承 multiprocessing.Process 这个类'''
def __init__(self): # 重写 init 方法
# def __init__(self,name): # 重写 init 方法
super().__init__() # 调用父类方法
# super().__init__(name = name,daemon = True,)
# 可以在这里设置参数 , def run(self): # 重写 run 方法
print(time.time())
time.sleep(3)
print(time.time()) if __name__ == '__main__': # 在 win 系统下 p = MyProcess()
# p = MyProcess('abc') # 传参
p.start() # 启动时会自动调用 run 方法
线程与进程一样操作,
潭州课堂25班:Ph201805201 并发(进程,线程)二 第十二课 (课堂笔记的更多相关文章
- 潭州课堂25班:Ph201805201 WEB 之 页面编写 第四课 登录注册 (课堂笔记)
index.html 首页 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- 潭州课堂25班:Ph201805201 WEB 之 页面编写 第三课 (课堂笔记)
index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- 潭州课堂25班:Ph201805201 WEB 之 页面编写 第二课 (课堂笔记)
index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- 潭州课堂25班:Ph201805201 WEB 之 页面编写 第一课 (课堂笔记)
index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- 潭州课堂25班:Ph201805201 第十课 类的定义,属性和方法 (课堂笔记)
类的定义 共同属性,特征,方法者,可分为一类,并以名命之 class Abc: # class 定义类, 后面接类名 ( 规则 首字母大写 ) cls_name = '这个类的名字是Abc' # 在类 ...
- 潭州课堂25班:Ph201805201 并发(进程,线程) 第十一课 (课堂笔记)
线程,进程,是实现并发的方法, 并行: 在同一时刻,同时运行多个任务,CPU 的数量大于等于任务数量, 并发: 在同一时间间隔内, 同时处理多个任务, 并行是并发. 进程:表示一个正在执行的程序, 操 ...
- 潭州课堂25班:Ph201805201 并发(进程与线程池) 第十四课 (课堂笔记)
循环执行一个线程 # -*- coding: utf-8 -*- # 斌彬电脑 # @Time : 2018/7/20 0020 5:35 import threading import queue ...
- 潭州课堂25班:Ph201805201 并发(协程) 第十五课 (课堂笔记)
#斐波那契 def fid(n): res = [] indx = 0 a = 0 b = 1 while indx < n : res.append(b) a,b = b,a+b indx + ...
- 潭州课堂25班:Ph201805201 并发(通信) 第十三课 (课堂笔记)
from multiprocessing import Process # 有个 url 列表 ,有5个 url ,一次请求是1秒,5个5秒 # 要求1秒把 url 请求完, a = [] # 在进程 ...
随机推荐
- CentOS修改编码方式为zh_CN.UTF-8
1.查看系统是否支持简体中文 locale -a 2.修改编码方式 vim /etc/sysconfig/i18n 将文件内容修改为下面文本: LANG="zh_CN.UTF-8" ...
- UML和模式应用4:初始阶段(7)--其它需求
1.前言 本文主要讲述除用例的其它需求制品. 2.TODO
- jrockit静默安装笔记
操作系统安装版本:CentOS-6.4-i386-minimal JDK安装版本:jrockit-jdk1.6.0_20-R28.1.0-4.0.1-linux-ia32 1.通过SecureFX工具 ...
- DES加密模式详解
DES加密模式详解 http://www.cnblogs.com/Lawson/archive/2012/05/20/2510781.html http://www.blogjava.net/wayn ...
- Advanced Installer 14.9 – WPF或winform应用程序打包成exe文件
Advanced Installer14.9 下载地址:https://pan.baidu.com/s/1uj2QcxWcpGdqsjAinNPIAw 提取码:sa3r 选择Visual Studi ...
- 红黑树与AVL树
概述:本文从排序二叉树作为引子,讲解了红黑树,最后把红黑树和AVL树做了一个比较全面的对比. 1 排序二叉树 排序二叉树是一种特殊结构的二叉树,可以非常方便地对树中所有节点进行排序和检索. 排序二叉树 ...
- centos7和centos6.5环境rpm方式安装mysql5.7和mysql5.6详解
centos环境安装mysql5.7 其实不建议安装mysql5.7 语法和配置可能和以前的版本区别较大,多坑,慎入 1.yum方式安装(不推荐) a.安装mysql5.7 yum源 centos6: ...
- 转载:《理解RESTful架构》 阮一峰
原文:http://www.ruanyifeng.com/blog/2011/09/restful.html 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件&q ...
- PYTHON-面向对象-练习-王者荣耀 对砍游戏
# 王者荣耀 对砍游戏# 两个英雄可以对砍 如果血量小于等于0 就GG# 所需的对象# 英雄对象""" 亚瑟 属性 类型 血量 名称 技能 Q 跳起来给你一刀 伤害50 ...
- vue系列之获取多选框中被选中的值
多个勾选框,绑定到同一个数组: <input type="checkbox" id="jack" value="Jack" v-mod ...