Это означает, что ваша блокировка из другого потока никогда не снимает блокировку, полученную @synchronized(self)
- вы, вероятно, ожидаете, пока что-то завершится, что происходит в другом потоке, пытаясь получить доступ к блокировке, пока она удерживается из другой точки.Ищите эту проблему (если вы сделаете паузу, вы, вероятно, увидите ожидание в отладчике в другом потоке).Это также предполагает, что ваши блокировки хранятся в течение длительных периодов - удерживайте их только в течение коротких периодов, если вы хотите эффективно использовать параллелизм.