Search
Write a publication
Pull to refresh
9
0
Вячеслав Муравьев @slavamuravey

Software Engineer

Send message

А у вас есть опыт использования tsyringe на сервере, чтобы экземпляры сервисов были уникальны только в рамках запроса? И чтобы без привязки к фреймворку, например, к express. Скорее всего, такое как-то можно, конечно, сделать. На мой взгляд, в моей библиотеке попроще API, и нет привязки к typescript, а в tsyringe, все же, рекомендуется typescript и декораторы, есть зависимость от reflect-metadata. Хотя, если постараться, можно и обойти. Спасибо за ваш опыт!

Здравствуйте, спасибо за статью! Вы пишете:

Многопоточность незаменима тогда, когда необходимо, чтобы графический интерфейс продолжал отзываться на действия пользователя во время выполнения некоторой обработки информации.

Скорее, не незаменима, а является одним из способов обеспечения отзывчивости интерфейса. Например, главный поток в браузере может успеть и страницу отрендерить, и сделать еще какие-то вычисления, главное вовремя возвращаться к рендерингу страницы.

Здравствуйте! Остановимся подробнее на 4 пункте. Если мы смогли поставить еще один таймер на 2 секунды, это значит, что ожидание было прервано, и мы из него вышли (из epoll_wait) и запустили новый таймер в каком-то обработчике. Этот таймер будет добавлен в кучу. В каком месте этот таймер будет в куче зависит от итогового приоритета для этого таймера, который, как мы помним, рассчитывается как сумма времени цикла и таймаута. Затем уже на следующей итерации цикла событий мы опять входим в epoll_wait, в который передается заново рассчитанный таймаут на основе уже двух таймеров в куче.

Поэтому вариант а) не случится, потому что, раз мы смогли по ходу приложения поставить новый таймер, значит ожидание уже было прервано. По поводу варианта б) - у таймеров нет каких-то дескрипторов, которые были бы интересны для epoll, у них есть приоритет.

int epoll_wait(
  int epfd, 
  struct epoll_event *events, 
  int maxevents, 
  int timeout
);

И для epoll_wait нужно только значение timeout, которое было рассчитано на основе приоритетов таймеров в куче.

Здравствуйте! Скорее всего, у вас ошибка в переводе:

Есть два способа сделать это в узле

Похоже, что не в "узле", а в node.

Спасибо! Рад, что пригодилось)

Тоже знакомо) А мне пришла в голову такая аналогия: предметы в школе редко меняются, уроки математики, истории, биологии и т. д. были тогда и сейчас. Но если спросить людей, нравится им, например, история, то ответят по-разному, и, скорее всего, ответ будет зависеть от того, КАК этот урок преподавали в школе. У человека на долгое время может сформироваться мнение о себе, что он гуманитарий, но когда он встречается с очень интересным человеком, который объясняет математику так, что заслушаешься, мнение может существенно поменяться. И подумаешь тогда: эх, вот был бы такой учитель у меня в свое время... Конечно, большая удача открыть или изобрести что-то новое, но подать уже существующий материал доступным языком и заинтересовать в какой-то теме тоже очень ценно.

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity

Specialization

Fullstack Developer, Web Developer
Lead
JavaScript
Node.js
Web development
React
TypeScript
MobX
Redux
Webpack
Jest