线程读写操作

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_线程读写操作<一>的更多相关文章

  1. 一个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 ...

  2. ASP.NET MVC Filters 4种默认过滤器的使用【附示例】 数据库常见死锁原因及处理 .NET源码中的链表 多线程下C#如何保证线程安全? .net实现支付宝在线支付 彻头彻尾理解单例模式与多线程 App.Config详解及读写操作 判断客户端是iOS还是Android,判断是不是在微信浏览器打开

    ASP.NET MVC Filters 4种默认过滤器的使用[附示例]   过滤器(Filters)的出现使得我们可以在ASP.NET MVC程序里更好的控制浏览器请求过来的URL,不是每个请求都会响 ...

  3. Netty源码阅读之如何将TCP的读写操作和指定线程绑定

    原文链接:http://xueliang.org/article/detail/20200712234015993 前言 在Netty的线程模型中,对于一个TCP连接的读写操作,都是由一个单线程完成的 ...

  4. 最全java的读写操作(转载)

    Java的I/O系统中的输入输出流为我们进行开发提供了很多便利,利用其强大的封装性,通过各种组合能够实现多种多样的功能.但是Java提供了很多输入输出流类,在概念和使用上有很多相似之处,所以给很多开发 ...

  5. 《Windows驱动开发技术详解》之读写操作

    缓冲区方式读写操作 设置缓冲区读写方式:

  6. ios 简单的plist文件读写操作(Document和NSUserDefaults)

    最近遇到ios上文件读写操作的有关知识,记录下来,以便以后查阅,同时分享与大家. 一,简单介绍一下常用的plist文件. 全名是:Property List,属性列表文件,它是一种用来存储串行化后的对 ...

  7. kernel中文件的读写操作可以使用vfs_read()和vfs_write

    需要在Linux kernel--大多是在需要调试的驱动程序--中读写文件数据.在kernel中操作文件没有标准库可用,需要利用kernel的一些函数,这些函数主要有: filp_open() fil ...

  8. NIO流—理解Buffer、Channel概念和NIO的读写操作

    NIO流与IO流的区别 面向流与面向块 IO流是每次处理一个或多个字节,效率很慢(字符流处理的也是字节,只是对字节进行编码和解码处理). NIO流是以数据块为单位来处理,缓冲区就是用于读写的数据块.缓 ...

  9. (六)kernel中文件的读写操作可以使用vfs_read()和vfs_write

    需要在Linux kernel--大多是在需要调试的驱动程序--中读写文件数据.在kernel中操作文件没有标准库可用,需要利用kernel的一些函数,这些函数主要有: filp_open() fil ...

随机推荐

  1. [CSP-S模拟测试]:物理课(数学)

    题目传送门(内部题144) 输入格式 从$physics.in$读入数据. 第一行一个数$T$,代表有$T$组数据.接下来$T$行每行$4$个浮点数,分别为$\theta,v,d,g$,保留到小数点后 ...

  2. DL反向传播理解

    作者:寒小阳 时间:2015年12月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/50321873 声明:版权所有,转载请联系作者并注明 ...

  3. 微信小程序之数据缓存和数据获取

    在一个微信小程序中 避免不了的就是在多个页面获取数据,而且还会在不同的页面获取相同的数据,写起来就是一大坨,看着就不愉快 那么今天说一下 这个方法 wx.setStorage(OBJECT) 这个方法 ...

  4. GB 和 GiB 的区别

    GB 和 GiB 的区别 Gibibyte (GiB) is one of the standard units used in the field of data processing and da ...

  5. 如何优雅的给TDatetimePicker控件赋值(Delphi)

    给DatetimePicker赋值时,可以通过界面设置赋值,也可以通过代码赋值. 通常,我们会给表示起始时间的dtp赋值为 00:00:00,给表示结束时间的dtp赋值为23:59:59. 代码如下: ...

  6. 面向对象编程(oop)的变迁

    作者:匿名用户链接:https://www.zhihu.com/question/34018003/answer/132740170来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...

  7. sql(存储过程,事务,索引,游标,触发器)

    1.SqlServer中like '%_%'来匹配下划线: --在sql server的like中下划线类似于通配符%,所以无法使用like '%_%'来匹配下划线 select * from cla ...

  8. Linux进程间通信(IPC)之信号量

    [Linux]进程间通信(IPC)之信号量详解与测试用例 2017年03月22日 17:28:50 阅读数:2255 学习环境centos6.5 Linux内核2.6 进程间通信概述 1. 进程通信机 ...

  9. JavaScript高级编程学习笔记(第三章之一)

    继续记笔记,JavaScript越来越有意思了. 继续... 第三章:JavaScript基础 ECMAScript语法在很大程度上借鉴了C和其它类似于C的语言,比如Java和Perl. 大小写敏感: ...

  10. linux下杀进程的方法

    http://www.linuxidc.com/Linux/2011-08/40052.htm kill -s 9 2222