- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 iPhone 开发的新手。由于专注于开发多线程应用程序,我引用了一些 Apple 文档和其他解释线程和多线程概念的文档。但就工作队列而言,我在理解线程、任务和队列之间的关系时感到困惑。一些文档说,一个线程可以有多个任务,这些任务存储在队列中,因此每个线程都可以有自己的队列。然而,有人说,线程本身存储在队列中。
我的问题是,我们可以说:
(1) 线程可以有多个任务,这些任务在该线程的队列中存储和管理。
或
(2) 线程本身在队列中存储和管理。
其次,我也读过这样的东西:
Another advantage of using a thread pool over creating a new thread for each task is thread creation and destruction overhead is negated.
线程池是工作队列的同义词吗?
最佳答案
我现在清楚了。
线程和队列是完全不同的东西。线程是独立的执行代码,而队列是维护任务的数据结构。一个线程可以有多个任务,并且可以为特定目标创建所有线程,即 Process。一个线程在内存中有自己的空间来存放它的变量和其他东西。
因此,在多线程编程中,队列是一种处理要执行的任务序列的机制。队列总是按顺序执行任务。但是,如果我们想并发执行任务,就必须创建并发队列。因此,多个队列可以同时执行,有利于多道程序设计。使用最新的 API,如何安排这些任务取决于操作系统。任务可能会也可能不会在单独的线程上执行。结构始终取决于我们的要求。
关于ios - 混淆线程和队列之间的技术术语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25722452/
我是一名优秀的程序员,十分优秀!