Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 线程数量和RAM使用之间的关系通常是什么?_Multithreading_Memory - Fatal编程技术网

Multithreading 线程数量和RAM使用之间的关系通常是什么?

Multithreading 线程数量和RAM使用之间的关系通常是什么?,multithreading,memory,Multithreading,Memory,线程数量和RAM使用之间的关系通常是什么 假设可用线程的数量是K,假设K=“由lscpu命令显示的CPU”,我们有一个具有某种并行性的程序。 随着使用的线程数量的增加(比如使用t个线程),程序内存消耗的一般行为是什么?是O(t)吗?线程会带来一定的开销。您需要内存来处理线程状态、线程本地数据 显然,如果一个线程需要X字节的内存来存储上述信息,那么n个线程将需要n*X字节 所以你需要一个较低的边界。但是:最重要的是,取决于每个线程正在处理的工作负载。一个线程可能只是逐行读取一个文件,处理它,然后一

线程数量和RAM使用之间的关系通常是什么

假设可用线程的数量是K,假设K=“由lscpu命令显示的CPU”,我们有一个具有某种并行性的程序。
随着使用的线程数量的增加(比如使用t个线程),程序内存消耗的一般行为是什么?是O(t)吗?

线程会带来一定的开销。您需要内存来处理线程状态、线程本地数据

显然,如果一个线程需要X字节的内存来存储上述信息,那么n个线程将需要n*X字节


所以你需要一个较低的边界。但是:最重要的是,取决于每个线程正在处理的工作负载。一个线程可能只是逐行读取一个文件,处理它,然后一次写一行。那么它就不需要太多内存了。但另一个线程可能会将一个大图像读取到内存中,然后对该数据进行各种计算。因此,要求一个一般的上界是毫无意义的。

我明白了。当某个程序的内存消耗随着线程数量的增加而不断增加时,这并不奇怪,对吧?通常,线程会做一些工作。您可能期望更多的工作会导致更多的内存消耗。