hasQueuedPredecessors是判断该线程是否是头节点吧(虚头后面第一个),如果不是则进行排队