作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我听不到一个同事说任务基本上是一个轻量级线程。来自C++背景(线程在其中最轻的处理单元所在的地方),这对我来说似乎是违反直觉的。
任务不像线程那么重吗?
最佳答案
您需要区分工作单元(任务)和用于承载/执行工作的基础过程。 Task甚至不必在其他线程上运行。例如,可以在单线程应用程序中执行任务,该应用程序会定期将控制权交给任务池。
即使在单独的线程上执行任务,任务与线程之间通常也不存在一对一的关系。线程被预分配为池的一部分,然后计划任务在可用时在这些线程上运行。创建新任务并不需要创建线程的开销,而只需要在任务队列中入队的代价。
这使任务本质上具有更大的可伸缩性。在我的应用程序的整个生命周期中,我可以完成数百万个任务,但实际上只能使用一定数量的线程。
关于multithreading - 与线程相比,任务轻巧吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17110956/
我正在维护的几个软件直接连接到远程数据库,以获取需要操作的数据。在过去,这不是问题。然而,客户现在需要的功能是执行返回大量历史数据的查询。网络延迟确实开始成为一个问题。 我的第一种方法是保持查询rdb
我是一名优秀的程序员,十分优秀!