- 博客(4)
- 收藏
- 关注
原创 多进程数据共享
多进程之间的数据共享不用进程池的多进程的数据共享from multiprocessing import Process,Queuequeue = 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
732
1
原创 多线程和多进程结合使用
多线程和多进程结合使用代码:from threadpool import ThreadPool,makeRequestsfrom multiprocessing import Poolfrom time import sleep,time#随便定义一个函数当做线程池的任务,有具体任务(比如爬虫)时更改func里的代码def func(a): print(a) sleep(1)#将创建线程池的部分封装为一个函数,用进程池来调用def create_threads(lst):
2020-11-05 22:29:43
663
原创 单线程和多线程
单线程和多线程单线程普通的程序默认都是单线程,程序的执行方式是从上至下串行执行,示例import timedef 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
964
原创 线程池和进程池
线程池和进程池线程安全 单线程程序不会有线程安全的问题,但多线程程序就可能出现线程安全的问题,举个例子,当多个线程同时访问同一个数据时并对其做出操作时,可能会出错,原因是线程一访问某个数据并修改了它,但还没来得及保存,线程二也访问了这个数据,但取到的数据还是未修改的,所以线程二取到的是一个脏数据(错误数据)。线程安全解决方案——加锁1.Lock锁from threading import Thread,Lock#导入线程模块和Lock锁模块account = 10000#定义一个全局变量,表示
2020-11-04 20:52:55
249
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人