DispatchSpecificKey



import Dispatch


extension DispatchQueue {

    private static var token: DispatchSpecificKey<()> = {

        let key = DispatchSpecificKey<()>()

        DispatchQueue.main.setSpecific(key: key, value: ())

        return key

    }()


    static var isMain: Bool {

        return DispatchQueue.getSpecific(key: token) != nil

    }

}



setSpecific:就是向指定队列里面设置一个标识 .

getSpecific:就是在当前队列中取出标识.

其中键为DispatchSpecificKey,并且添加缺少的key:标签

你可能感兴趣的:(DispatchSpecificKey)