• 【Python】多线程2


    threading模块

    import time
    import random
    import threading
    class Inclass:
        def __init__(self):
            print 'Inclass 初始化'
        def execIn(self,i):
            rand = int(random.random() * 10)
            print i,'---%s--开始执行,暂停%d秒' % (time.ctime(),rand)
            time.sleep(rand)
            
    class Outclass:
        def __init__(self):
            print 'OutClass初始化'
        def execOut(self):
            InC = Inclass()
            length = 1000
            nloops = range(length)
            threads = []
            for i in range(length):
                t = threading.Thread(target = InC.execIn, args = (i,))
                threads.append(t)
            for i in nloops:
                threads[i].start()
            for i in nloops:
                threads[i].join()
                
    OC = Outclass()
    OC.execOut()
                
            

    版本2:

    import time
    import random
    import threading
    class Inclass:
        def __init__(self):
            print 'Inclass 初始化'
        def execIn(self,i):
            rand = int(random.random() * 10)
            print i,'---%s--开始执行,暂停%d秒' % (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--开始执行多线程第%d个小循环' % (time.ctime(),k)
                k += 1
                
    OC = Outclass()
    OC.execOut()
  • 相关阅读:
    jQuery
    jQuery
    jQuery
    jQuery
    jQuery 遍历- 过滤:缩小搜索元素的范围
    jQuery 遍历
    jQuery 遍历
    jQuery 遍历
    jQuery 遍历:jQuery 遍历 什么是遍历?
    jQuery 尺寸:处理元素和浏览器窗口的尺寸
  • 原文地址:https://www.cnblogs.com/colipso/p/4514082.html
Copyright © 2020-2023  润新知