python线程总数限制?

最近在尝试多线程。  
发现一个奇怪的问题。。  

python能支持的线程总数好像是随机的?
在我这里 i686 linux2.6.15  (512ram,512swap)
运行下面的脚本

[Copy to clipboard] [ - ]
CODE:
import thread

def counter(myId,count):
    for i in range(count):
        stdoutmutex.acquire()
        print '[%s] => %s' %(myId,i)
        stdoutmutex.release()
    exitmutexes[myId].acquire()

stdoutmutex = thread.allocate_lock()
exitmutexes = []

for i in range(2000):
    exitmutexes.append(thread.allocate_lock())
    thread.start_new(counter,(i,100))

for mutex in exitmutexes:
    while not mutex.locked() :pass
print 'Main thread exiting'

大概有一半的概率会出现
thread.error: can't start new thread
而且thread.error 出现时 产生的线程总数也不一样。  

我想这和底层os 的线程机制有关吧?   
但这个限制是多少呢?
我这里当设定产生1000线程时有1/10的概率出现thread.error

google 后 知道好多老外也在讨论这个问题。。
http://www.google.com/search?num ... mit&btnG=Search
最意外的是看到 有人 在第五个线程 时就出现thread.error
http://www.velocityreviews.com/f ... art-new-thread.html

不同的kernel,不同的gcc,不同版本的python   这个限制都不一样。

请问怎样取得一个 能产生线程数量 的最小值 保证呢?