Я предполагаю, что @synchronized блоки зависят не от объекта, а от потока... верно? В таком случае, почему мы передаем self?