Нет. Даже по практическому правилу просто говорится: «Трудно заставить их работать». Но управляемые событиями фреймворки очень похожи на управляемое событиями моделирование и другие вещи; тот факт, что в Javaworld это сложно, не факт многопоточности, а абстракции, доступные в Java.
В другой среде, например, в Erlang, она достаточно естественная, довольно надежная.
Обновление
Похоже, у него неправильные абстракции. Я не вижу ничего, присущего проблеме, которая вызывает проблему блокировки. Ключ, я думаю, иди сюда:
Теперь, поскольку мы используем абстракции,
мы, естественно, будем делать блокировки
отдельно внутри каждой абстракции.
И, к сожалению, у нас есть классический
блокировка заказа кошмар: у нас есть два
различные виды деятельности, происходящие
которые хотят обзавестись замками напротив
заказы. Так что тупик почти
неизбежно.
Так почему тупик почти неизбежен? Потому что происходит два разных вида деятельности, которые хотят получить замки в противоположных порядках. И это потому, что «мы, естественно, будем делать блокировку отдельно в каждой абстракции».
Другими словами, он выбрал - или выбрал для него окружение - абстракции, которые не отвечают его потребностям. Следовательно, он, кажется, утверждает, что таким образом нет никаких абстракций, которые могли бы. Я не нахожу это убедительным. Я бы начал с изучения двух вещей:
- " естественно мы будем делать блокировку отдельно в абстракциях" и
- "у нас есть события, которые хотят получить блокировки в противоположных порядках."
По моему опыту, «естественно, Х» обычно означает «я действительно не искал другие варианты». И я очень сомневаюсь, что события хотят приобрести замки в противоположных порядках; ты получаешь замок, ты что-то делаешь и отпускаешь.
Суть в том, что он, кажется, представляет факт, что ему трудно придумать схему, которая работает , работает как теорема, чтобы сказать, что никакая схема не может работать .
Без большого количества подробностей о проблеме сложно создать контрпример, но, как я сказал выше, есть много примеров систем, в которых события происходят в разные стороны, асинхронно, из внутренних процессов и графических интерфейсов. , которые могут иметь много одновременных потоков управления и не блокировать. Эрланг пришел на ум, потому что один класс этих проблем, телефония, является тем, для которого был изобретен Эрланг, и на самом деле такие проблемы , почему Эрланг был изобретен.