我有3个运行在Linux上的java进程,并执行数据库查询(MariaDB)和一些文件IO(硬盘和USB)。有时发生的情况是,一个进程的写操作不会在其他java进程上得到反映。
有两种情况:
在完成进程A的插入查询后,进程A立即启动另一个java进程(进程B),进程B在数据库中找不到插入的值。
Process A在挂载USB上的路径X上从某个服务器下载文件。下载完成后,进程A通过RMI将路径X发送到进程B。当进程B试图在X处读取文件时,它会找到0字节的文件。只有当路径X在USB上时,才会发生这种情况,在硬盘上从来没有见过这个问题。如果我在发送路径X到进程B之前尝试读取进程A中的文件属性
我有一个简单的多处理任务来编写csv文件。程序从另一个文件中获取大约40k行,处理这些数据并将它们写入另一个文件。我的代码如下所示:
create_queue_infile(csv_file, q, opt)
pool = multiprocessing.Pool(processes=(multiprocessing.cpu_count() - 1))
while not (q.empty()):
res = pool.apply_async(my_function, args=(q.get(), input2, 5, output,))
pool.close()
pool.join(