多线程轮流写入文件

首页 » 线/进程 » 多线程轮流写入文件

需求

  • 有5个小文件,每个线程读取一行,然后写入指定文件。另一个文件接着读取接着写入
  • 一轮执行完接着下一轮

文件格式:

  • 第一个文件全部是1,第二文件全部是2,等等

结果

最后汇总一个总文件

文件按123451234512345…..(每个数字是一行)

import threading
list=[]
import time
lock=threading.Lock()
class go(threading.Thread):
    time.sleep(1)
    def __init__(self,index):
        threading.Thread.__init__(self)
        self.index=index
    def run(self):
        fh=open("/Users/new/lean/test/docter/线程作业/ip "+str(self.index)+".txt")
        for line in fh:
            while (list[0]!=self.index):#如果当前不该轮到这个线程,就不运行
                pass
            op=open("/Users/new/lean/test/docter/线程作业/zuoye.txt",'a+')
            op.write(line)
            print(str(self.index)+" :"+line)
            op.close()
            print("删除前:"+str(list[0]))#已经写入过的就移除,
            list.remove(self.index)
            print(len(list))
            print("删除后:"+str(list[0]))
            list.append(self.index)#然后在后面追加以便下一轮使用
a=[]
cond=threading.Condition()
for i in range(1,6):
    list.append(i)
    x=go(i)
    x.start()
    a.append(x)
for j in a:
    j.join()
多线程轮流写入文件

分享到:
赞(0) 打赏

评论 10

评论前必须登录!

 

  1. #1

    我也是小白以后多多交流

    笨鸟先飞8个月前 (03-27)
  2. #2

    小蚯蚓8个月前 (03-27)
  3. #3

    我也是学计算机的

    小蚯蚓8个月前 (03-27)
  4. #4

    给你点赞

    小白8个月前 (03-28)
  5. #5

    奥利给

    hello8个月前 (03-28)
  6. #6

    最好再详细点

    笨鸟先飞8个月前 (03-28)
  7. #7

    给你点赞

    你好6个月前 (05-26)
  8. #8

    奥利给

    中国加油小子6个月前 (05-26)
  9. #9

    看了那么多博客,就你的能看懂

    小蚯蚓6个月前 (05-26)
  10. #10

    我也是学计算机的

    沥青6个月前 (05-26)

觉得文章有用就打赏一下弟弟吧

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.5主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
正在播放:

作者想对您说:

累了就停下来听首歌吧

听完后会给您一个好心情

最后

等到您不容易

还希望您能多待一会儿

      00:00/00:00