使用python测测你的系统最多能创建多少个线程,python线程,#!/usr/bin/e


#!/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个线程。储位朋友有兴趣,可以使用它来测测不同平台下,最多能创建多少个线程。

评论关闭