下面的代码创建的线程数是多少,为什么?

时间:2019-04-02 07:28:31

标签: c multithreading winapi

我认为该函数将创建线程,直到资源耗尽为止,但是我运行了代码,但看不到资源耗尽。

 class App extends React.Component{
    constructor(props) {
     super(props);
     axios.get('http://example.com') //...
    }

    componentDidMount(){
      //or here or to other lifecycle function based on needs
    }


    render() {
        return(
            <div className="container">
            </div>
        );
    }
}

1 个答案:

答案 0 :(得分:4)

Windows保护自己免受这种耗尽。一旦达到每个进程允许的最大线程数,CreateThread就会失败(对于我很乐意继续开发的Windows系统,通常大约有2000个线程)

您可能期望某些资源首先被耗尽,但是线程需要许多资源,而第一个资源自身耗尽将导致随后对CreateThread的调用失败。根据我的经验,主要消耗的两个资源是虚拟内存,这是由于每个新线程都需要堆栈,以及内核可以在调度程序中容纳的线程数限制(上下文切换机制)。