python多進程併發寫文件的方法

這個可使用進程鎖,也可使用文件鎖,我使用的是文件鎖。python

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')

就是這樣的,不過我以爲其餘時候仍是用進程鎖比較好。app

相關文章
相關標籤/搜索