使用python测测你的系统最多能创建多少个线程
使用一个循环,不断的创建线程,直到出现异常,才通知它们。python真是个好东西。代码如下:#!/usr/bin/env python#coding=gbkimport threadingimport time, random,sysclass Counter:def __init__(self):self.lock = threading.Lock()
·
使用一个循环,不断的创建线程,直到出现异常,才通知它们。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个线程。
储位朋友有兴趣,可以使用它来测测不同平台下,最多能创建多少个线程。
更多推荐
已为社区贡献1条内容
所有评论(0)