# vmstat 60 2
System configuration: lcpu=12 mem=46080MB ent=1.10
kthr memory page faults cpu
----- ----------- ------------------------ ------------ -----------------------
r b avm fre re pi po fr sr cy in sy cs us sy id wa pc
您好,我正面临以下错误。我在谷歌上看到的是,我的本机内存正在耗尽。任何帮助解决这个问题的人都将不胜感激。请注意,我使用的是32位Windows 7。
java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:597)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.star
如何限制同时执行的线程数量?以下是我的算法示例:
for(i = 0; i < 100000; i++) {
Thread.start {
// Do some work
}
}
我希望确保一旦我的应用程序中的线程数量达到100,算法将暂停/等待,直到应用程序中的线程数量低于100。
目前,“一些工作”需要一些时间来完成,我的应用程序中有几千个线程。最终,它会耗尽所有线程,“一些工作”会崩溃。我想通过限制它一次可以使用的池的数量来修复它。
请告诉我如何解决我的问题。
即使在使用Tensorflow CPU设置tf.config.threading.set_inter_op_parallelism_threads(1)和tf.config.threading.set_intra_op_parallelism_threads(1) Keras (运行一个简单的CNN模型适合)之后,在linux机器上也会创建太多的线程。无论我尝试什么,它似乎是在创建94个线程,同时经历了合适的时代。已经尝试过使用tf.compat.v1.ConfigProto设置,但是没有任何帮助。如何限制线程数?
我的c++程序不能创造比8 threads更多的东西。它返回错误代码EAGAIN(11)。因为缺乏可用的资源。在发布这个问题之前,我在谷歌上搜索了这个问题的解决方案,但没能从中得到多少信息。以下是我为我的程序和unix系统找到的详细信息。
我的线程创建函数是:-
thread_initialise(File *CFG_FILE)
{
int total_pthreads; //reads number of threads I want for the program from configuration file.
int rc =0 ;
fo