Heim > Artikel > Backend-Entwicklung > Python-Simulationsmethode zum Aufteilen großer Dateien und zum Implementieren einer Multithread-Verarbeitung
In diesem Artikel wird hauptsächlich die Methode von Python zur Implementierung der simulierten Aufteilung großer Dateien und der Multithread-Verarbeitung vorgestellt, die das Lesen, Aufteilen und Multithreading von Python-Dateien umfasst. Freunde mit Bedarf können sich auf die Beispiele dieses Artikels beziehen
Beschreibt, wie Python die Simulation der Aufteilung großer Dateien und der Multithread-Verarbeitung implementiert. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
#!/usr/bin/env python #--*-- coding:utf-8 --*-- from random import randint from time import ctime from time import sleep import queue import threading class MyTask(object): """具体的任务类""" def __init__(self, name): self.name = name self._work_time = randint(1, 5) def work(self): print("Task %s is start : %s, sleep time= %d" % (self.name, ctime(), self._work_time)) sleep(self._work_time) print("Task %s is end : %s" % (self.name, ctime())) class MyThread(threading.Thread): """多线程的类""" def __init__(self, my_queue): self.my_queue = my_queue super(MyThread, self).__init__() def run(self): while True: if self.my_queue.qsize() > 0: self.my_queue.get().work() else: break def print_split_line(num=30): print("*" * num) if __name__ == "__main__": print_split_line() import my_read_file # 分割文件 sf = my_read_file.SplitFiles(r"F:\multiple_thread_read_file.txt", line_count=300) file_num = sf.split_file() queue_length = file_num my_queue = queue.LifoQueue(queue_length) threads = [] for i in range(queue_length): file_name = sf.get_part_file_name(i) mt = MyTask(file_name) my_queue.put_nowait(mt) for i in range(queue_length): mtd = MyThread(my_queue) threads.append(mtd) for i in range(queue_length): threads[i].start() for i in range(queue_length): threads[i].join() print_split_line()
Das obige ist der detaillierte Inhalt vonPython-Simulationsmethode zum Aufteilen großer Dateien und zum Implementieren einer Multithread-Verarbeitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!