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
Ios 混淆线程和队列之间的技术术语_Ios_Multithreading_Data Structures_Multitasking - Fatal编程技术网

Ios 混淆线程和队列之间的技术术语

Ios 混淆线程和队列之间的技术术语,ios,multithreading,data-structures,multitasking,Ios,Multithreading,Data Structures,Multitasking,我是iPhone开发新手。在关注开发多线程应用程序时,我参考了一些苹果文档和其他解释线程和多线程概念的文档。但就工作队列而言,我对理解线程、任务和队列之间的关系感到困惑。一些文档说,一个线程可以有多个任务,这些任务存储在队列中,因此每个线程可能有自己的队列。然而,有人说,线程本身存储在队列中 我的问题是,我们可以说: (1) 线程可以有多个任务,这些任务在该线程的队列中存储和管理 或 (2) 线程本身在队列中存储和管理 第二,我也读到这样的东西: 与为每个任务创建新线程相比,使用线程池的另一个优

我是iPhone开发新手。在关注开发多线程应用程序时,我参考了一些苹果文档和其他解释线程和多线程概念的文档。但就工作队列而言,我对理解线程、任务和队列之间的关系感到困惑。一些文档说,一个线程可以有多个任务,这些任务存储在队列中,因此每个线程可能有自己的队列。然而,有人说,线程本身存储在队列中

我的问题是,我们可以说:

(1) 线程可以有多个任务,这些任务在该线程的队列中存储和管理

(2) 线程本身在队列中存储和管理

第二,我也读到这样的东西:

与为每个任务创建新线程相比,使用线程池的另一个优点是线程创建和销毁开销被抵消

线程池是工作队列的同义词吗?

我现在清楚了

线程和队列是完全不同的事情。线程是独立的执行代码,而队列是用于维护任务的数据结构。一个线程可以有多个任务,并且可以为特定的目标创建所有线程,即进程。线程在内存中有自己的空间存放变量和其他内容

所以,在多线程编程中,队列是一种处理要执行的任务序列的机制。队列始终以串行顺序执行任务。然而,如果我们想并发执行任务,我们必须创建并发队列。因此,可以同时执行多个队列,这有利于多道程序设计。使用最新的API,如何安排这些任务取决于操作系统。任务可以在单独的线程上执行,也可以不在单独的线程上执行。结构始终取决于我们的要求