潭州课堂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 = [] # 在进程 ...
随机推荐
- k64 datasheet学习笔记1---概述
1.前言 k64 datasheet描述了Freescale MCU的特性.架构和编程模型,主要是面向使用MCU的系统架构和软件应用开发人员. 2.模块划分 datasheet主要按功能对模块进行划分 ...
- 常用的4个eclipse插件安装过程及使用方法
最近整合了4个常用eclipse插件安装过程,分别是PMD.checkstyle.findbugs.sourcemonitor插件.因为我这里没有外网,所以所有的插件不是最新版,建议有网的童鞋自行在外 ...
- 【bzoj1901】dynamic ranking(带修改主席树/树套树)
题面地址(权限题) 不用权限题的地址 首先说说怎么搞带修改主席树? 回忆一般的kth问题,我们的主席树求的是前缀和,这样我们在目标区间的左右端点的主席树差分下就能求出kth. 那么我们如何支持修改操作 ...
- 01 响应式页面-@media介绍,
我们为什么要写自适应的页面(响应式页面) 众所周知,电脑.平板.手机的屏幕是差距很大的,假如在电脑上写好了一个页面,在电脑上看起来不错,但是如果放到手机上的话,那可能就会乱的一塌糊涂,这时候怎么解决呢 ...
- XPATH语法(二)
节点(node) 在 XPath 中,有七种类型的节点:元素.属性.文本.命名空间.处理指令.注释以及文档(根)节点.XML 文档是被作为节点树来对待的.树的根被称为文档节点或者根节点. 以下面这xm ...
- OneNET麒麟座应用开发之十:空气质量数据监测站项目总结
大气质量数据监测站用于测试空气质量监测及数据采集,实现野外或者室内空气质量的检测. 1.项目概述 本项目是一个定制项目,要求采集大气的压力.温度.湿度.PM25.位置等数据并上传到指定的后台服务器.但 ...
- Codeforces 448C Painting Fence(分治法)
题目链接:http://codeforces.com/contest/448/problem/C 题目大意:n个1* a [ i ] 的木板,把他们立起来,变成每个木板宽为1长为 a [ i ] 的栅 ...
- Luogu P2426 【删数】
状态定义: 一眼区间$DP$,从左右两边删不好定义状态,不如定义$dp[i][j]$表示$[i,j]$未删的最大值,转移就很自然了 转移: 从左边删$dp[i][j]=max(dp[i][j],dp[ ...
- Gym100340 线性dp
//看题解写的 https://blog.csdn.net/sdfzyhx/article/details/51804748#include<bits/stdc++.h> using na ...
- hdu3255扫描线:带权面积交转体积交
手贱把i打成j,调了半天 /* 面积并转体积并,长方体高度为作物价格 算体积并:在笛卡尔坐标系的y轴上建立线段树cnt记录区间被完全覆盖的次数,sum记录区间被覆盖的总长度 以平行于xoy的平面从下往 ...