1、GCD是队列,NSThread是线程,队列里面一般包含了多个线程,但是部分提别的的队列也有一个线程,例如主队列:dispatch_get_main_queue()
一般来说刷新UI的线程都是在主线程,但是要是要回到主线程最好的方式是回到“主队列”,所以回到主队列则需要判断当前是不是在主队列。
每一个队列都有一个唯一的表示,通过
const char *
dispatch_queue_get_label(dispatch_queue_t _Nullable queue);
可以获取到某个队列的标志
GCD提供了宏 DISPATCH_CURRENT_QUEUE_LABEL,来获取当前所处的队列
所以一下代码可以判断当前的队列是不是在主队列
if (dispatch_queue_get_label(DISPATCH_CURRENT_QUEUE_LABEL) == dispatch_queue_get_label(dispatch_get_main_queue())) {
}