首页 > 学院 > 开发设计 > 正文

threading

2019-11-06 07:47:23
字体:
来源:转载
供稿:网友

threading 模块的Thread类有一个join()函数,允许主线程等待线程的结束

# -*- coding: UTF-8 -*-import threadingimport timeloops = [4, 2]def loop(nloop, nesc):    PRint "start loop", nloop, "at:", time.ctime()    time.sleep(nesc)    print "loop", nloop, "done at:", time.ctime()    def main():    print "starting at ", time.ctime()    threads = []    nloops = range(len(loops))            for i in nloops:        t = threading.Thread(target=loop, args = [i, loops[i]])        threads.append(t)            for i in nloops:        threads[i].start()            for i in nloops:        threads[i].join()                print "all done at:", time.ctime()    if __name__ == "__main__":    main()

# -*- coding: UTF-8 -*-import threadingimport timeloops = [4, 2]class ThreadFunc(object):        def __init__(self, func, args, name =""):        self.name = name        self.func = func        self.args = args            def __call__(self):        apply(self.func, self.args)def loop(nloop, nesc):    print "start loop", nloop, "at:", time.ctime()    time.sleep(nesc)    print "loop", nloop, "done at:", time.ctime()    def main():    print "starting at ", time.ctime()    threads = []    nloops = range(len(loops))            for i in nloops:        t = threading.Thread(target=ThreadFunc(loop, (i, loops[i]), loop.__name__))        threads.append(t)            for i in nloops:        threads[i].start()            for i in nloops:        threads[i].join()                print "all done at:", time.ctime()    if __name__ == "__main__":    main()

# -*- coding: UTF-8 -*-import threadingimport timeloops = [4, 2]class MyThread(threading.Thread):        def __init__(self, func, args, name =""):        threading.Thread.__init__(self)        self.name = name        self.func = func        self.args = args            def run(self):        apply(self.func, self.args)def loop(nloop, nesc):    print "start loop", nloop, "at:", time.ctime()    time.sleep(nesc)    print "loop", nloop, "done at:", time.ctime()    def main():    print "starting at ", time.ctime()    threads = []    nloops = range(len(loops))        for i in nloops:        t = MyThread(loop, (i, loops[i]), loop.__name__)        threads.append(t)            for i in nloops:        threads[i].start()            for i in nloops:        threads[i].join()                print "all done at:", time.ctime()    if __name__ == "__main__":    main()


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表