Python实验:采用多线程在一个文件中查找特定字符串

创建一个采用多线程在一个文件中查找特定字符串出现多少次的程序。要求创建多线程,每个线程负责文件的一部分,在其中查找某一个特定字符串出现的次数。(例如:在2个线程下,将文件内容进行等分,然后2个线程分别处理文件前一部分和后一部分)。

实验要求:
1)程序通过终端读入线程数量、文件名称、特定字符串
2)要求进行单线程、多线程两次试验,并且输出每个线程所用处理时间(可用time.time())。
求源代码
希望能在明天中午之前有回答,回答的好的话可以加分

import threading , time
def countstr(f):
    global findstr,occurtimes
    times=0
    for string in f:
        if findstr in string:
            times+=1
    occurtimes.append(times)
 
occurtimes=[]
threadnum=int(raw_input("please input thread number:"))
filename=raw_input("please input filename:")
findstr=raw_input("please input to find string:")
text=open(filename).readlines()
start=time.time()
threads=[]
for i in range(threadnum):
    t=threading.Thread(target=countstr,args=(text[i::threadnum],))
    threads.append(t)
    t.start()
for t in threads:
    t.join()
end=time.time()
print("multithread using %.5f seocnds"%(end-start))
print('string "%s" occurs %d times'%(findstr,sum(occurtimes)))
print
occurtimes=[]
start=time.time()
countstr(text)
end=time.time()
print("singlethread uing %.5f seconds"%(end-start))
print('string "%s" occurs %d times'%(findstr,sum(occurtimes)))

温馨提示:答案为网友推荐,仅供参考
相似回答