调用时,此方法会阻塞当前线程并等待接收者的当前和排队操作完成执行。当当前线程被阻塞时,接收器继续启动已经排队的操作并监视那些正在执行的操作。在此期间,当前线程无法向队列添加操作,但其他线程可以。一旦所有挂起的操作都完成了,这个方法就会返回。
我想知道允许这种行为的waitUntilAllOperationsAreFinished背后的代码是什么(阻止当前线程,接收器继续......)?我有兴趣编写产生类似行为的代码,因此我会感谢任何以类似方式表现的等效代码(是的,Apple 对我来说是黑盒)。
更具体地说:NSOperationQueue 如何进行线程阻塞,同时允许接收器处理它的东西(我的猜测:在运行 currentRunLoop 时调度信号量)?
谢谢!