import time import random import threading import inspect def get_current_function_name(): return inspect.stack()[1][3] class Inclass: def __init__(self): print ‘Inclass 初始化‘ def execIn(self,i): rand = int(random.random() * 10) print i,‘【%s.%s】---%s--开始执行,暂停%d秒‘ % (self.__class__.__name__, get_current_function_name(),time.ctime(),rand) time.sleep(rand) return i class MyThread(threading.Thread): def __init__(self,func,args,name = ‘‘): threading.Thread.__init__(self) self.name = name self.func = func self.args = args def getResult(self): return self.res def run(self): self.res = self.func(*self.args) class Outclass: def __init__(self): print ‘OutClass初始化‘ def execOut(self): InC = Inclass() length = 1000 threadlen = 10 k = 0 i = 0 while i < length: nloops = range(threadlen) threads = [] for j in range(threadlen): t = MyThread( InC.execIn, (i,)) i += 1 threads.append(t) for i in nloops: threads[i].start() for i in nloops: threads[i].join() for i in nloops: print ‘-----result:‘,threads[i].getResult() print k,‘【%s.%s】--%s--开始执行多线程第%d个小循环‘ % (self.__class__.__name__, get_current_function_name(),time.ctime(),k) k += 1 OC = Outclass() OC.execOut()
时间: 2024-10-26 13:46:20