multithreading - 每个处理器产生多个线程是否有意义?

标签 multithreading concurrency

从逻辑的角度来看,应用程序可能需要数十个或数百个线程,其中大部分时间我们大多数时候都处于休眠状态,但是很少有线程会始终并发运行。问题是:产生比系统中的处理器更多的并发线程是否有意义,还是浪费?

我已经看到一些服务器应用程序实现了调度程序以逻辑地管理任务(通常称为作业),但也产生了很多线程,因此我看不出这样做的好处。

提前致谢。

最佳答案

当然。如果您的软件频繁使用磁盘或网络IO,则通常可以通过添加更多线程来提高吞吐量。当其他线程阻塞IO时,这些额外的线程将保持清醒状态并开始工作。

关于multithreading - 每个处理器产生多个线程是否有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/503551/

相关文章:

mysql - 如何最好地处理多对多并发冲突?

java - 使用2个管道在线程之间传输

java - 为什么更喜欢 wait/notify 而不是 while 循环?

c - WSAWaitForMultipleObjects 阻塞除最后一个以外的任何线程

multithreading - Device.BeginInvokeOnMainThread的作用是什么?

java - 无法解析符号 'Immutable'

java - ExecutorCompletionService 仅在单线程中运行,但 ExecutorService 使用所有 CPU

Java在两个线程之间共享一个变量

java - 控制Android Java线程

c# - 在多个任务中(一次?)编辑哈希集是线程安全的吗?