zoukankan      html  css  js  c++  java
  • 【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()
  • 相关阅读:
    jsp页面跳转的路径问题
    Hibernate简单的保存操作
    Hibernate中如何完成持久化类和数据库映射文件
    spring中IOC的简单使用
    对称的二叉树 --剑指offer
    二叉树的下一个结点 --剑指offer
    删除链表中重复的结点 --剑指offer
    链表中环的入口结点 --剑指offer
    字符流中第一个不重复的字符 --剑指offer
    表示数值的字符串 --剑指offer
  • 原文地址:https://www.cnblogs.com/colipso/p/4514082.html
Copyright © 2011-2022 走看看