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 ...
随机推荐
- MySQL_8.0与5.7区别之账户与安全
一.创建用户和用户授权 MySQL5.7创建用户和用户授权命令可以同时执行 grant all privileges on *.* to 'Gary'@'%' identified by 'Gary@ ...
- java生成10个不相等的1-20的随机数
public class Test { public static void main(String[] args){ Random ran = new Random(); Set <Integ ...
- Java-UncaughtExceptionHandler 捕获线程异常
实现 UncaughtExceptionHandler 类,重写 uncaughtException 方法. public class MyUncaughtExceptionHandler imple ...
- redis宕机时哨兵的处理
https://blog.csdn.net/a67474506/article/details/50435498 redis宕机是的故障处理 重启故障机 sentinel.conf 的配置会改变
- 链表反转 C++
ListNode* reverse1(ListNode* pHead) { if(pHead == NULL) return NULL; ListNode * p1 = NULL; ListNode ...
- Struts2与Servlet API的解耦访问
- tensorflow实现验证码识别案例
1.知识点 """ 验证码分析: 对图片进行分析: 1.分割识别 2.整体识别 输出:[3,5,7] -->softmax转为概率[0.04,0.16,0.8] - ...
- pandas之数据处理操作
1.pandas对缺失数据的处理 我们的数据缺失通常有两种情况: 1.一种就是空,None等,在pandas是NaN(和np.nan一样) 解决方法: 判断数据是否为NaN:pd.isnull(df) ...
- Ubuntu16.04源
vim /etc/apt/sources.list # 阿里云deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420. ...
- nodejs相关
安装: 1:下载 Node.js 安装包及源码下载地址为:https://nodejs.org/en/download/. 32 位安装包下载地址 : https://nodejs.org/dist/ ...