python consulate_使用python测测你的系统最多能创建多少个线程 | 学步园

使用一个循环,不断的创建线程,直到出现异常,才通知它们。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. www.2cto.com

Thread-1023 -- created.

Thread-1024 -- created.

Thread-1025 -- created.

Thread-1026 -- created.

异常:  can't start new thread

Thread-1027 -- created.

maxium i= 1027

MainThread  quit

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值