python多进程并发写文件的方法

原创
2018/08/01 17:52
阅读数 2.2W

这个可以使用进程锁,也可以使用文件锁,我使用的是文件锁。

python 内置文件锁模块 fcntl 可以在这里使用,好了,废多看崩。

import multiprocessing
import fcntl

def multi(filepath, fowrite):
    """
    多进程入口函数
    """
    pool = multiprocessing.Pool(CORE_COUNT)
    pool.apply_async(multi_take, (
        fowrite,
    ))

    pool.close()
    pool.join()

def multi_take(fowrite):
    """
    最终结果写入文件(加锁并发写)
    """
    with open(fowrite,'a+') as fo:
        fcntl.flock(fo.fileno(), fcntl.LOCK_EX) #加锁    
        fo.write('hello world')

就是这样的,不过我觉得其他时候还是用进程锁比较好。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部