利用递归创建线程,想实现多线程的并发,但是数量慢慢递增到50左右就上不去了,为什么。
查过linux的系统线程并发数量的值是很大的,是代码问题还是系统有什么限制了进程数量的上升。
代码: 全选
class fileFind:
catalog = ""
key = ""
result = []
count = 0;
def __init__(self):
self.catalog = "/"
def startDir(self,dir):
self.catalog = dir
def setKey(self,key):
self.key = key
def fileSearch(self,path):
for root,dir,file in os.walk(path):
for name in dir:
self.searchThread(os.path.join(path,name))
break
for f in os.listdir(path):
if (f.strip().find(self.key)>-1):
self.result.append(os.path.join(path,f.strip()))
def searchThread(self,path):
t = threading.Thread(target=self.fileSearch,args=(path,))
t.setDaemon(True)
t.start()
t.join()
if __name__=="__main__":
a = fileFind()
a.startDir("/")
a.setKey("sdafhsa")
a.searchThread(a.catalog)