如何在您的计算机上运行最大数量的线程

如何在计算机上运行最大数量的线程? 我想在我的python代码中运行最大线程数。 我在Windows计算机上运行代码。

我考虑了以下解决方案:

x = 0
while 1:
    try:
        t = Thread(target=learn,args=(line,)) #writer,))
        thread_list.append(t)
        t.start()
        break
    except Exception as exp:
        time.sleep(1)
        if x == 0:
            print "Waiting for free thread",x = 1
        else:
            print ".",

代码工作正常,但几分钟后出现以下错误:

mutex.acquire() #error
with open("output.csv","ab") as dataset_file:
    writer = csv.writer(dataset_file)
    writer.writerow(dataset)
mutex.release()

mutex.acquire()
AttributeError: 'NoneType' object has no attribute 'acquire'

有人可以解决我的错误,也可以通过其他方法来打开最大数量的线程吗? 谢谢。

x12960437 回答:如何在您的计算机上运行最大数量的线程

您可以在Windows上运行的最大线程数取决于您拥有的内存量。默认情况下,Windows中的每个线程都占用1MB的RAM用于堆栈(另外还有一些用于其上下文的内存和一个很小的内核模式堆栈)。对于32位应用程序,如果不分配任何其他内存,则可以创建的最大线程数约为1800。换句话说,您可以创建多少个线程归结为您的应用程序具有多少可用内存。

但是,您不应创建太多线程。通常,您的目标应该是拥有尽可能多的可用线程。创建线程很昂贵,在线程之间切换也是如此。

本文链接:https://www.f2er.com/3138248.html

大家都在问