注册 登录
  • 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

使用python测测你的系统最多能创建多少个线程

python 水墨上仙 1882次浏览 已收录 手机上查看

使用一个循环,不断的创建线程,直到出现异常,才通知它们。python真是个好东西。

#!/usr/bin/env python  
#coding=gbk  

import threading  
import time, random,  sys  

class Counter:  
    def __init__(self):  
        self.lock = threading.Lock()  
        self.value = 0  

    def increment(self):  
        self.lock.acquire()   
        self.value = value = self.value + 1  
        self.lock.release()  
        return value  

counter = Counter()  
cond = threading.Condition()  

class Worker(threading.Thread):  

    def run(self):  
        print self.getName(),  "-- created."  
        cond.acquire()  
        #for i in range(10):  
            # pretend we're doing something that takes 10?00 ms  
            #value = counter.increment()   
            # time.sleep(random.randint(10, 100) / 1000.0)  
        cond.wait()  
        #print self.getName(), "-- task", "finished"   
        cond.release()  

if __name__ == '__main__':  

        try:  
            for i in range(3500):  
                Worker().start() # start a worker  
        except BaseException,  e:  
            print "异常: ", type(e),  e  
            time.sleep(5)  
            print "maxium i=",  i  
        finally:  
            cond.acquire()  
            cond.notifyAll()  
            cond.release()  
            time.sleep(3)  
            print threading.currentThread().getName(),  " quit"  

以下是python2.7在XP下的运行结果,可能跟具体的机器物理配置也有关系。

...........  
Thread-1021 -- created.  
Thread-1022 -- created.  
Thread-1023 -- created.  
Thread-1024 -- created.  
Thread-1025 -- created.  
Thread-1026 -- created.  
异常:  <class 'thread.error'> can't start new thread  
Thread-1027 -- created.  
maxium i= 1027  
MainThread  quit  
最终只能创建1027个线程。
我后来使用python2.5.2来测了一下,也只能创建1029个线程。
储位朋友有兴趣,可以使用它来测测不同平台下,最多能创建多少个线程。

 


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明使用python测测你的系统最多能创建多少个线程
喜欢 (0)
[开心洋葱]
分享 (0)
水墨上仙
关于作者:
水墨上仙
……