Комментарии 11
И зачем эти физики строят ускорители, может им научиться делать транзисторы?
Поскольку электроны бегут со скоростью света, за счет уменьшения размера, время, которое требовалось электрону, чтобы пробежать весь путь внутри процессора, уменьшалось.
Получается, что частота процессоров растёт, потому, что электронам меньше нужно бегать)
Про световую скорость электронов уже упомянули. Реально она в проводниках порядка миллиметра в секунду
Впервые вижу эти эпитеты в отношении синхронного/многопоточного кода при сравнении с асинхронным. Отлаживать его как раз одно удовольствие по сравнению с мешаниной коллбэков. Как только project Loom с его легковесными потоками (Fibers) выйдет в продакшн будет вообще прекрасно, простой понятный синхронный код без проблем с производительностью
А в многопоточном минус в том, что можно не дождаться того результата, при котором у тебя упала ошибка, потому что потоки не предсказуемы. Они в целом выполняют задачу правильно, а вот на конкретном уровне они непонятно как могут работаться с данными.
Вообще асинхронность антоним никак не многопоточности, а синхронности. Асинхронный код точно так же работает в разных потоках, и требует синхронизации при доступе к ресурсам и т д. Его преимущество в скорости, тк создать миллионы тяжелых потоков для современных задач невозможно, но достигается это преимущество ценой усложнения разработки и отладки, и это общепризнанный факт.
Как только в java завезут файберы проблема производительности решится сама собой, и синхронный внешне код будет работать под капотом как асинхронный, и файберы можно будет плодить мильонами
Асинхронный код точно так же работает в разных потоках
Не обязательно, цикл событий может работать в одном потоке.
Как только в java завезут файберы проблема производительности решится сама собой
Серебряной пули не существует. Почитайте например цикл статей "Do Looms Claims Stack Up".
Когда выйдет следующая часть?
Но в этой схеме нет ожидания. Сравним ее с традиционной моделью многопоточного сервера в Java.
Что за фокусы? Есть там ожидание. Там просто более простой способ вызвать обработчик при завершении(calback, promise). В Java это нужно сделать "вручную", то есть проверять статус потока и при получении его результата вызвать какой-то код.
Реактивное программирование на Java: как, зачем и стоит ли? Часть I