2021年8月28日
摘要: 多进程3 以下代码比较了多线程、多进程和普通顺序执行所耗费的时间: import multiprocessing as mp import threading import time def job(): a = 0 for i in range(10000): for j in range(100 阅读全文
posted @ 2021-08-28 20:50 菜小疯 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 多进程2 与线程类似,进程无法返回一个值,我们还是可以使用Queue来返回值。 以下代码使用了Queue: import multiprocessing as mp def job1(qq, x): x = x * 2 qq.put(x) if __name__ == '__main__': q = 阅读全文
posted @ 2021-08-28 17:35 菜小疯 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 多进程 以下代码创建一个进程: import multiprocessing as mp def job1(): print('this is a process') if __name__ == '__main__': p1 = mp.Process(target=job1) p1.start() 阅读全文
posted @ 2021-08-28 15:57 菜小疯 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 多线程4 为了等待线程执行完毕,除了多线程2中提到的join,还可以使用本文的lock。 以下代码展示未使用lock的情况: import threading def thread1_job(): global A for i in range(10): A += 1 print('thread1' 阅读全文
posted @ 2021-08-28 12:02 菜小疯 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 多线程3 线程任务无法像函数一样用return返回一个值,Queue类是解决这个问题的一种方法。 以下代码用Queue方法返回线程任务的处理结果: import threading from queue import Queue def thread1_job(lis, q): for i in r 阅读全文
posted @ 2021-08-28 10:49 菜小疯 阅读(23) 评论(0) 推荐(0) 编辑