python学习第三十一节

event模块
event.wait() 等待相当于标志位为False。()内可以传参数数字,为几秒。
event.set()给另一个线程传标志位True。

队列 queue
和列表类似,但是函数内置了互斥锁,保证了线程安全。是具有线程安全的数据结构。

put传进去,get取出来,取是先进先出的方法,吃了拉,而且queue没有别的方法。

上图这种情况没有意义,最后一次get取不到值在等待put 单线程写到后面的put并不能运行,需要再
开一个线程。
取值之后,queue就少了一个。

如上图put里写block=False参数,当queue满了在添加,将报错而不是卡死。

上图如上上图效果一样,写法不一样。

如上图,get参数可以写block=False 当取不到值的时候立刻报错。

上图和上上图效果一样,写法不一样。

put之后加入一个join可以阻塞该子线程后面的程序,然后另一个线程取出来需要每次都要task_done()
表示执行完毕,当所有任务完成之后会继续上一个线程的后面任务。

q.empty()

如果queue为空布尔值为True

priority优先级

如上图,设置优先级的例子。

生产者消费者模型

多进程

 1 from multiprocessing import Process#import
 2 import os
 3 import time
 4
 5
 6 def info(name):
 7     ‘‘‘打印父进程PID和进程PID‘‘‘
 8     print("name:", name)#打印名字
 9     print(‘parent process:‘, os.getppid())#获取父进程ID
10     print(‘process id:‘, os.getpid())#获取子进程ID
11     print("------------------")
12     time.sleep(1)
13
14
15 def foooooo(name):
16     ‘‘‘调用info‘‘‘
17     info(name)
18
19
20 if __name__ == ‘__main__‘:
21     info(‘main process line‘)
22
23     process_one = Process(target=info, args=(‘alvin‘,))#创建一个进程
24     process_two = Process(target=foooooo, args=(‘egon‘,))
25     process_one.start()#激活这个进程
26     process_two.start()
27
28     process_one.join()#进程的join和线程的join是一样的,子进程运行结束之后运行主进程
29     process_two.join()
30
31     print("ending")#主进程

多进程的联系。

时间: 2024-08-01 11:54:32

python学习第三十一节的相关文章

python学习笔记第十一节(迭代和其他)

yiled 面相过程编程 造好内容,统一发给下面 上面这个是傻瓜版 内置函数 print(divmod(10,3)) 将10除以3,显示商和余数 enumerate函数,显示元素及它的索引,enumerate后面的都为迭代器 range 倒着取 切片的步长 四舍五入 保留3位小数 计算apple 10 3tesla 100000 1mac 3000 2lenovo 30000 3chicken 10 3这些商品列表的数量和价格的总价钱 上面是比较low的写法 上面这种是生成器表达式居然还有这种操

OpenCV for Python 学习笔记 三

给源图像增加边界 cv2.copyMakeBorder(src,top, bottom, left, right ,borderType,value) src:源图像 top,bottem,left,right: 分别表示四个方向上边界的长度 borderType: 边界的类型 有以下几种: BORDER_REFLICATE # 直接用边界的颜色填充, aaaaaa | abcdefg | gggg BORDER_REFLECT # 倒映,abcdefg | gfedcbamn | nmabcd

Python学习第三天--数据类型

数据类型: int()  整型 float()浮点型 e记法   (有点像数学中的科学计数法) 知识点概括: 字符相加,结果为和 >>> 520 + 5201040 2.字符串相加,结果为"拼接" >>> '520'+'1314''5201314' 3.逻辑运算,python认为True=1,False=0,(True和False第一个字母必须为大写) >>> True + True 2 >>> True - Tr

python 学习笔记 三 字典

字典 Python的高效的key/value哈希表结构叫做"dict", dict的内容可以写成一系列的key:value对并放入{ }中, 相当于: dict = {key1:value1, key2:value2, ...}, 一个空的字典就是俩个大括号{ }. 下面是从一个空字典创建字典以及一些关键点: 数字, 字符串和元组可以作为字典的key, value可以是任何类型(包括字典). ## Can build up a dict by starting with the the

Python学习(三):入门篇:Python中怎么编写类

Python中怎么编写类 Last Edit 2013/5/2 先看一个例子: #person.py class person: """class to representaion a person""" def __init__(self,name,age): self.name=name if 0<age<=150: self.age=age else: print 'age is no valid!' def display(s

Python学习(三) 八大排序算法的实现(下)

本文Python实现了插入排序.基数排序.希尔排序.冒泡排序.高速排序.直接选择排序.堆排序.归并排序的后面四种. 上篇:Python学习(三) 八大排序算法的实现(上) 1.高速排序 描写叙述 通过一趟排序将要排序的数据切割成独立的两部分,当中一部分的全部数据都比另外一部分的全部数据都要小,然后再按此方法对这两部分数据分别进行高速排序,整个排序过程能够递归进行,以此达到整个数据变成有序序列. 1.先从数列中取出一个数作为基准数. 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全

centos 邮件服务 第三十一节课

centos   邮件服务  第三十一节课 上半节课 下半节课 f

python学习笔记三---segmaphore信号量学习

# *-* coding=gb2312 *-* ''' 信号量semaphore 是一个变量,控制着对公共资源或者临界区的访问.信号量维护着一个计数器,指定可同时访问资源或者进入临界区的线程数. 每次有一个线程获得信号量时,计数器-1.若计数器为0,其他线程就停止访问信号量,直到另一个线程释放信号量. ''' import threading import random import time class MyThread(threading.Thread): availableTables=[

Python学习(三)数据结构

Python 数据结构 本章介绍 Python 主要的 built-type,包括如下: Numeric types          int float Text Sequence Type       str Boolean              bool Sequence  Types        list tuple range Mapping Types          dict Set Types             set type() 函数 type(object)