国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python實現模擬分割大文件及多線程處理的方法

2020-02-16 10:21:14
字體:
來源:轉載
供稿:網友

本文實例講述了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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宜宾市| 沙河市| 衡阳县| 玛曲县| 左云县| 荥经县| 石首市| 南康市| 普洱| 呼玛县| 田阳县| 潞城市| 敖汉旗| 松阳县| 祁东县| 洛阳市| 西峡县| 黄山市| 民乐县| 盐津县| 突泉县| 织金县| 仙居县| 南昌县| 偃师市| 尼玛县| 岐山县| 包头市| 外汇| 钟山县| 西林县| 永修县| 繁昌县| 奈曼旗| 昌都县| 宜兰市| 九江市| 夏邑县| 江川县| 阜南县| 阿拉善盟|