「スレッド」と「キュー」は同じもののようです。ではない。キューは、1つ以上の実際のスレッドを使用して実装できる高レベルの抽象化です。
dispatch_get_global_queue
を使用すると、毎回別のキューが表示される可能性があります。最初に行う必要があるのは、毎回新しいキューを要求するのではなく、使用する単一のキューを作成することです。単一のキューを作成するには、dispatch_queue_create
を使用します。適切なスコープで参照を保存して、いつでも参照できるようにします。
キューが1つしかないので、キューが並行キューかシリアルキューかを判断する必要があります。シリアルキューは1スレッドのみを使用し、並行キューは複数スレッドを使用できます。 dispatch_queue_create
関数のattr
パラメータに適切な値を渡して、目的のキューを取得します。
のObjective-C:
let myQueue = DispatchQueue(label: "my_global_queue") // serial
:
は、キューを作成します。
dispatch_async(myQueue, ^{
// code
});
スウィフト:
dispatch_queue_t myQueue = dispatch_queue_create(@"my_global_queue", DISPATCH_QUEUE_CONCURRENT); // or use DISPATCH_QUEUE_SERIAL
は、キューを使用します。
は、キューを作成します。
か:
let myQueue = DispatchQueue(label: "my_global_queue", attributes: .concurrent) // concurrent
キューを使用します。
myQueue.async {
// code
}
大感謝を!私は自分のコードでやった –