import multiprocessing as mp
from functools import partial

def read_files(file_name):
	return file_name, file_name + 'value'

def function(file_name, d, lock):
    key, value = read_files(file_name)
    lock.acquire()
    if (key not in d):
        d[key] = []
    tmp = d[key]
    tmp.append(value)
    d[key] = tmp
    lock.release()

if __name__ == '__main__':
    manager = mp.Manager()
    d = manager.dict()
    lock = manager.Lock()
    partial_function = partial(function, d=d, lock=lock)
    pool = mp.Pool(10)
    files = ['a', 'b', 'c']
    pool.map(partial_function, files)
    pool.close()
    pool.join()