GCDでキューの優先度をつけたい


グローバルのキューを使う場合、優先度が指定できますが、

[code]

    dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
    DISPATCH_QUEUE_PRIORITY_HIGH
    DISPATCH_QUEUE_PRIORITY_DEFAULT
    DISPATCH_QUEUE_PRIORITY_LOW
    DISPATCH_QUEUE_PRIORITY_BACKGROUND
    
[/code]

`dispatch_queue_create()`で作成したキューには優先度は指定できないのでしょうか。




`dispatch_queue_create()`で作成したキューは、`DISPATCH_QUEUE_PRIORITY_DEFAULT`で動作します。

この優先度を変える場合は、`dispatch_get_global_queue`で変更したい優先度のキューを取得して、`dispatch_set_target_queue`で指定します。

[code]

    let queue = dispatch_queue_create("com.test", DISPATCH_QUEUE_SERIAL)
    let targetPriorityQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0)
    dispatch_set_target_queue(queue, targetPriorityQueue)
    
[/code]

  * 参考  
[Grand Central Dispatch (GCD)
Reference](https://developer.apple.com/library/mac/documentation/Performance/Reference/GCD_libdispatch_Ref/index.html#//apple_ref/c/func/dispatch_set_target_queue)




`dispatch_queue_create()`で作成したキューは、`DISPATCH_QUEUE_PRIORITY_DEFAULT`で動作します。

この優先度を変える場合は、`dispatch_get_global_queue`で変更したい優先度のキューを取得して、`dispatch_set_target_queue`で指定します。

[code]

    let queue = dispatch_queue_create("com.test", DISPATCH_QUEUE_SERIAL)
    let targetPriorityQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0)
    dispatch_set_target_queue(queue, targetPriorityQueue)
    
[/code]

  * 参考  
[Grand Central Dispatch (GCD)
Reference](https://developer.apple.com/library/mac/documentation/Performance/Reference/GCD_libdispatch_Ref/index.html#//apple_ref/c/func/dispatch_set_target_queue)

