# 現在の実行スレッドと Dispatch Queue を出力する関数
デバッグ中に、処理がメインスレッドで動いているかと、どのDispatch Queueで動いているかを確認したかった。
Thread.isMainThread と現在のQueueのラベルを出力する関数を用意した。
# タグ・メインスレッドかどうか・Queueラベルを1行で出力する
// 1) Utilityとしてどこからでも呼べるように置く(例: DebugUtils.swift)
import Dispatch
@inline(__always)
func logThread(_ tag: String = "") {
let label = String(cString: __dispatch_queue_get_label(nil))
print("[\(tag)] isMain=\(Thread.isMainThread) queue=\(label)")
}
出力される値は次の3つである。
| 出力 | 取得方法 | 用途 |
|---|---|---|
tag | 引数で指定する | ログの発生箇所を識別する |
isMain | Thread.isMainThread | メインスレッドかを確認する |
queue | __dispatch_queue_get_label(nil) | 処理中のキューを確認する |