时间:2021-05-22
本文实例讲述了Python实现模拟分割大文件及多线程处理的方法。分享给大家供大家参考,具体如下:
#!/usr/bin/env python#--*-- coding:utf-8 --*--from random import randintfrom time import ctimefrom time import sleepimport queueimport threadingclass 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: breakdef 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()更多关于Python相关内容感兴趣的读者可查看本站专题:《Python进程与线程操作技巧总结》、《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
很多时候我们会面临大文件无法加载到内存,或者要传输大文件的问题。这时候就需要考虑将大文件分割为小文件进行处理了。下面是一种用python分割与合并分件的实现。i
本文实例讲述了Python实现分割文件及合并文件的方法。分享给大家供大家参考。具体如下:分割文件split.py如下:#!/usr/bin/python####
多线程概述多线程使得程序内部可以分出多个线程来做多件事情,充分利用CPU空闲时间,提升处理效率。python提供了两个模块来实现多线程thread和thread
本文主要讲述了多线程开发中经典示例,通过本示例,可以加深对多线程的理解。示例概述:下面用一个模拟吃苹果的实例,说明C#中多线程的实现方法。要求开发一个程序实现如
1.多线程的作用简而言之,多线程是并行处理相互独立的子任务,从而大幅度提高整个任务的效率。2.Python中的多线程相关模块和方法Python中提供几个用于多线