python_线程读写操作<一>
线程读写操作
import threading,random,queue
q = queue.Queue()
alist=[]
def shengchan():
for i in range(10):
alist.append(random.randint(1,20))
q.put(alist)
print('随机生成的十个数是%s'%alist)
def xiaofei():
with open('xiabo.txt','w+',encoding='utf8') as f:
f.write(str(q.get()))
f.seek(0)
c =f.read()
print(c)
if __name__=='__main__':
t1 = threading.Thread(target=shengchan)
t2 = threading.Thread(target=xiaofei)
t1.start()
t2.start()
进程池相关
from multiprocessing import Pool # 导入模块进程池
import os, time, random # 导入windows系统,时间,随机数模块 # print(random.random())
def task(name): # name是一个形参,先分析函数功能
print('任务跑在 %s (%d)...' % (name, os.getpid())) # 打印了进程池传的参数i,还有进程编号
start = time.time() # 记录一个开始时间
time.sleep(random.random() * 3) # 随机0-3之间的数
# print(random.random()*3) %s 字符串 %d 整型 %f 浮点型
end = time.time() # 结束时间
print('任务 %s 跑了 %0.2f时间' % (name, (end - start))) # 结束减去开始时间可以得出跑了多长时间算出函数运行时间 if __name__ == '__main__':
print('父进程是%d' % os.getpid()) # 获取当前进程编号ID
p = Pool(4) # 使用进程池类方法创建了4个进程
for i in range(1, 6): # 给4个进程分派了5个任务任务编号是1,2,3,4,5
p.apply_async(task, args=(i,)) # apply_async 是异步非阻塞的。# 让进程池执行了task函数,传的参数是i
# 意思就是:不用等待当前进程执行完毕,随时根据系统调度来进行进程切换。
print('等待所有子进程跑完...')
p.close() # 关闭进程池,因为后边有join必须保证子进程不再乱跑
# time.sleep(2)
# p.join() # 让所有的进程互相等待大家一起结束回家吃饭
print('所有的子进程跑完了')
python_线程读写操作<一>的更多相关文章
- 一个I/O线程可以并发处理N个客户端连接和读写操作 I/O复用模型 基于Buf操作NIO可以读取任意位置的数据 Channel中读取数据到Buffer中或将数据 Buffer 中写入到 Channel 事件驱动消息通知观察者模式
Tomcat那些事儿 https://mp.weixin.qq.com/s?__biz=MzI3MTEwODc5Ng==&mid=2650860016&idx=2&sn=549 ...
- ASP.NET MVC Filters 4种默认过滤器的使用【附示例】 数据库常见死锁原因及处理 .NET源码中的链表 多线程下C#如何保证线程安全? .net实现支付宝在线支付 彻头彻尾理解单例模式与多线程 App.Config详解及读写操作 判断客户端是iOS还是Android,判断是不是在微信浏览器打开
ASP.NET MVC Filters 4种默认过滤器的使用[附示例] 过滤器(Filters)的出现使得我们可以在ASP.NET MVC程序里更好的控制浏览器请求过来的URL,不是每个请求都会响 ...
- Netty源码阅读之如何将TCP的读写操作和指定线程绑定
原文链接:http://xueliang.org/article/detail/20200712234015993 前言 在Netty的线程模型中,对于一个TCP连接的读写操作,都是由一个单线程完成的 ...
- 最全java的读写操作(转载)
Java的I/O系统中的输入输出流为我们进行开发提供了很多便利,利用其强大的封装性,通过各种组合能够实现多种多样的功能.但是Java提供了很多输入输出流类,在概念和使用上有很多相似之处,所以给很多开发 ...
- 《Windows驱动开发技术详解》之读写操作
缓冲区方式读写操作 设置缓冲区读写方式:
- ios 简单的plist文件读写操作(Document和NSUserDefaults)
最近遇到ios上文件读写操作的有关知识,记录下来,以便以后查阅,同时分享与大家. 一,简单介绍一下常用的plist文件. 全名是:Property List,属性列表文件,它是一种用来存储串行化后的对 ...
- kernel中文件的读写操作可以使用vfs_read()和vfs_write
需要在Linux kernel--大多是在需要调试的驱动程序--中读写文件数据.在kernel中操作文件没有标准库可用,需要利用kernel的一些函数,这些函数主要有: filp_open() fil ...
- NIO流—理解Buffer、Channel概念和NIO的读写操作
NIO流与IO流的区别 面向流与面向块 IO流是每次处理一个或多个字节,效率很慢(字符流处理的也是字节,只是对字节进行编码和解码处理). NIO流是以数据块为单位来处理,缓冲区就是用于读写的数据块.缓 ...
- (六)kernel中文件的读写操作可以使用vfs_read()和vfs_write
需要在Linux kernel--大多是在需要调试的驱动程序--中读写文件数据.在kernel中操作文件没有标准库可用,需要利用kernel的一些函数,这些函数主要有: filp_open() fil ...
随机推荐
- AtCoder AGC009E Eternal Average (DP)
题目链接 https://atcoder.jp/contests/agc009/tasks/agc009_e 题解 又被劝退了... 第一步转化非常显然: 就等价于一开始有一个数\(1\), 有\(\ ...
- 【知识库】-数据库_MySQL 的七种 join
掘金作者:haifeisi 文章出处: MySQL 的七种 join Learn [已经过测试校验] 一.内连接 二.左外连接 三.右外连接 四.左连接 五.右连接 六.全连接 七.两张表中都没有出现 ...
- Java - 单链表
链表是一种常见的基础数据结构,是一种有序的列表,但不会按照线性顺序存储数据,而是在每一个节点里存储下一个节点的指针(next).链表适合插入.删除,不宜过长,否则会导致遍历性能下降. 以节点方式存储: ...
- 3 Java 冒泡排序法
冒泡排序( Bubble Sort)是一种简单的排序算法.它重复访问要数列, 一次比较两个元素,如果他们的顺序错误就把交换过来.访问数列工作是 一次比较两个元素,如果他们的顺序错误就把交换过来.访问数 ...
- 8 Linux 文件类型
Linux 系统中的文件是没有扩展名的. 1.通过 ls -l 文件名,看第一个字符判断文件类型: - 普通文件(文本文件.二进制文件.压缩文件.电影.图片等) d 目录文件 b 设备文件(块设 ...
- SpringBoot Thymeleaf 配置多个Template Locations
@Configuration public class ThymeleafConfigration { @Bean public SpringResourceTemplateResolver firs ...
- PHP中获取数组中单列的值
PHP中获取数组中单列的值如下: 利用PHP中的数组函数 array_column():返回数组中某个单列的值.(PHP 5.5+适用) 语法: array_column(array,column_k ...
- C# 防火墙操作之开启与关闭
通过代码操作防火墙的方式有两种:一是代码操作修改注册表启用或关闭防火墙:二是直接操作防火墙对象来启用或关闭防火墙.不论哪一种方式,都需要使用管理员权限,所以操作前需要判断程序是否具有管理员权限. 1. ...
- MySQL 插件之 连接控制插件(Connection-Control)
目录 插件介绍 插件安装 插件配置 插件介绍 MySQL 5.7.17 以后提供了Connection-Control插件用来控制客户端在登录操作连续失败一定次数后的响应的延迟.该插件可有效的防止客户 ...
- Cookie类
Cookie类:用于存储会话数据 1)构造Cookie对象 Cookie(java.lang.String name, java.lang.String value) 2)设置cookie void ...