def METHOD_NAME(self, args, func):
    """ Run """
    logger.debug('begin Run')
    file_num = self.init(args.input_dir)
    process_list = []
    lock_list = []
    progress_file_lock = Lock()
    for i in range(args.part_num):
        lock_list.append(Lock())
    process_num = min(args.num_workers, file_num, CPU_NUM)
    for i in range(0, process_num):
        p = Process(
            target=self.excute_func,
            args=(args, func, progress_file_lock, lock_list, i))
        p.start()
        process_list.append(p)
    for p in process_list:
        p.join()
    self.fini()
    logger.debug('end Run')