4
Beduin
07.02.14
✎
18:04
|
Просто в java с этим перемудрили. Создают, какие-то анонимные классы из интерфейсов, в них перегружают функции, потом их назначают обработчикам. Не то чтобы сложно, как то мутно все.
|
|
6
Torquader
08.02.14
✎
00:27
|
Вообще, обратный вызов - пошло ещё с ассемблера, когда мы какой-то стандартной функции передаём адрес своей функции, которую нужно вызвать при возникновении события или ещё при каких-то действиях.
Почему так оказалось проще - а потому, что в традиционной модели программирования требовалось наличие какого-то события проверять периодически, что не всегда удобно. Если код работает с прерываниями, то система может в любой момент прервать выполнение кода, вызвать любую функцию, а потом продолжить выполнение основного алгоритма.
(4) В java есть реальная многопоточность, поэтому там приходится делать обёртки для синхронизации, чтобы нельзя было "дважды войти в одну и ту же воду", когда два потока выполняют одно и то же действие одновременно.
|
|