- 博客(4)
- 收藏
- 关注
原创 多进程数据共享
多进程之间的数据共享 不用进程池的多进程的数据共享 from multiprocessing import Process,Queue queue = Queue() def func(a,q): re = f'我是子进程{a}:我放入data{a}' q.put(re) if __name__ == '__main__': ls = [] for i in range(10): p = Process(target=func,args=(i,queue))
2020-11-06 21:35:11 682 1
原创 多线程和多进程结合使用
多线程和多进程结合使用 代码: from threadpool import ThreadPool,makeRequests from multiprocessing import Pool from time import sleep,time #随便定义一个函数当做线程池的任务,有具体任务(比如爬虫)时更改func里的代码 def func(a): print(a) sleep(1) #将创建线程池的部分封装为一个函数,用进程池来调用 def create_threads(lst):
2020-11-05 22:29:43 590
原创 单线程和多线程
单线程和多线程 单线程 普通的程序默认都是单线程,程序的执行方式是从上至下串行执行,示例 import time def func(a,b): time.sleep(1) print(a+b) s = time.time() func(5,10) func(2,5) func(6,84) func(9,46) e = time.time() print(f'执行时间:{e-s}s') 执行结果:可以看到其结果和代码的打印顺序对应 H:\Python虚拟环境\Spyder\Scripts\p
2020-11-04 22:13:24 911
原创 线程池和进程池
线程池和进程池 线程安全 单线程程序不会有线程安全的问题,但多线程程序就可能出现线程安全的问题,举个例子,当多个线程同时访问同一个数据时并对其做出操作时,可能会出错,原因是线程一访问某个数据并修改了它,但还没来得及保存,线程二也访问了这个数据,但取到的数据还是未修改的,所以线程二取到的是一个脏数据(错误数据)。 线程安全解决方案——加锁 1.Lock锁 from threading import Thread,Lock#导入线程模块和Lock锁模块 account = 10000#定义一个全局变量,表示
2020-11-04 20:52:55 224
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人