list - python多进程数据输出问题
问 题 import requests,json from multiprocessing import Pool info_list=[]#空list url_list=[......]#多个url def get_info(url): json_data=requests.get(url).json() info_list.append(json_data) if __name__=="__main__": with Pool() as p: p.map(get_info,url_list) 我知道这样最终info_list中还是空的,因为多进程每个进程各自持有一份数据,默认无法共享数据,我尝试了Manager,Queue,但是不知道为什么还是不行,最后list中还是没有数据,大佬能给一段代码吗? 我的目的就是多进程运行,每个进程向list中添加数据,最后得到这个list值. 解决方案 你这个list不是进程安全, 会有bug
240 2022-07-17
编程技术问答社区
python 多进程如何提高函数效率?
问 题 1 如何利用multiprocessing 库提高单个函数的执行效率 2 代码如下: def f(): urls = ['http://yanbao.stock.hexun.com/listnews1_{}.shtml'.format(i) for i in range(1,5)] d = {} l1 = [] l2 = [] for url in urls: con = requests.get(url).text soup = BeautifulSoup(con, 'lxml') stockname = [i.string.split(':')[0] for i in soup.find_all('a',class_ = 'fxx_wb')] #得到每个研报的链接 t = [i.string for i in soup.find_all(text=re
408 2022-07-17
编程技术问答社区
python爬虫 - Python多进程如何获取函数的返回值
问 题 请问我用Process实现多进程了,但是那个函数会返回一个值,我如何获得,比如这样 def test(name): return "hello," + name p = Process(target=test, args=("world",)) p.start() p.join() 我如何获得test的返回值 解决方案 p = multiprocessing.Pool(1) rslt = p.map(test,('world',)) print rslt
1462 2022-07-17
编程技术问答社区
python3.x - python多进程,不能在同一窗口吗
问 题 web=webdriver.Firefox() web.get() def work1(): pass def work2(): pass def work3(): pass w1 = Process(target=work1,name='w1') w2 = Process(target=work2,name='w2') w3 = Process(target=work3,name='w3') w1.start() w2.start() w3.start() 这样web.get()会打开一个firefox. 三个进程也打开三个firefox。 这下就四个了。 我是想能不能让它们只打开一个firefox工作??? (不用线程) (语法不是问题的重点,只是说明问题随手打的) 解决方案 不能。 题主的意思应该是使用多线程获取网页信息,然而一个html文档必须占用一个窗口,现代浏览器使用标签页解决这个问题,那么题主可以在fire
182 2022-07-17
编程技术问答社区
python - 当装饰器遇到multiprocessing, 出了点bug.
问 题 from multiprocessing import Pool def with_app_context(need_new=False): def magic(func): app_store = {} def wrapper(*args, **kwargs): print 'inside', args, kwargs result = func(*args, **kwargs) return result return wrapper return magic @with_app_context(need_new=True) def func(k1, k2): print k1, k2 return 'ret' pool = Pool(processes=1) pool.apply_async(func, ar
140 2022-07-17
编程技术问答社区
python多进程下应用集合
问 题 Python自带的集合数据类型在同一个进程中的多个线程是可以访问的 但是如果开发多进程程序,Python中有没有类似set的可以跨进程使用的数据结构? 解决方案 Redis.
176 2022-07-17
编程技术问答社区
python3.x - python gui 多进程的疑问
问 题 from tkinter import * import concurrent.futures def p1(): while True: print('1') def p2(): while True: print('2') def login(): login_window.after(1, p1) login_window.mainloop() def main(): main_window.after(1, p2) main_window.mainloop() if __name__ == '__main__': login_window = Tk() login() main_window = Tk() main() with concurrent.futures.ProcessPoolExecutor() as executor
602 2022-07-17
编程技术问答社区