使用python测测你的系统最多能创建多少个线程,python线程,#!/usr/bin/e
使用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个线程。储位朋友有兴趣,可以使用它来测测不同平台下,最多能创建多少个线程。
相关内容
- 一个简单的MySQLdb封装类(3.2),mysqldb封装类3.2,__author__
- python自定义字典的扩展类,让字典操作起来更容易,
- 批量剪切图片 - Python,,import osfro
- Kindeditor+web.py+SAE Storage 实现文件上传,kindeditorweb.py,#上
- python mysql insert delete query,pythonmysql,python连接mysq
- ergodic_db_tb.py,,遍历数据库表及其相关表操
- 如何获得python对象变量的类型名字,python对象变量类型
- python从url中获取文件名,,import urlli
- 在Django中使用group_by,django使用group_by,在Django中怎样使
- python 显示错误的堆栈信息,python堆栈,python中有专门处
评论关闭