#起因: 公司让处理大量 excel 数据并导入 oracle ,但是单进程太慢了,于是考虑多线程或多进程,在尝试过网络上很多版本的多线程多进程,但都导入部分数据后退出导致失败具体见下文
#错误原因:
pool=ThreadPool(4)
cqs=cqs_branch_connect()
name_list=cqs_pt_rating().get_path()
connection_id=get_connectionid()
batch_id=get_batch_id()
conn_order_number=get_order_number()
bug_connection_id=0
cqs.make_exceldata(name_list,bug_connection_id,connection_id,batch_id,conn_order_number)
excel_name='new 管道连接.xlsx'
data_list=compliment(header_name,excel_name)
pool.map(insert_db,data_list)
##data_list 少则有千条 多则有上万条,但是 map 加上 pool 并不能将 data_list 数据全额导入进数据库 在执行到开始的某一段就会产生 process Finnished by the code -13000xxxx 的代码 google 是没有相关内容 我想知道这是为什么 并渴望知道解决方案。
###1.我很好奇网上一些多进程的按照这个模式实现的时候 有没有遇到过当 data 过大过多 然后不执行这种情况
###2.我很想知道 多进程是如何在这些列表里面加锁,比如让进程 1 访问 list[1:10]进程二[11:20]....进程 8[80:90] 不让他们发生 race competation 或者如何通过数量来划分哪些列表归谁呢?
####PS:尝试过的并发: multipletreading 还是旗下的 dummy 亦或是 3.x 新出来的 concurrent.futures
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.