На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (11) « Первая ... 9 10 [11]  все  ( Перейти к последнему сообщению )  
> WinAPI и POSIX, бой насмерть
    Цитата Qraizer @
    Из-за асинхронности всех событий он обвешан нитками, которые к тому же ещё и взаимодействуют друг с другом: консоль с UDP, UDP с консолью, TCP с UDP, UDP с TCP, консоль с ТCP и UDP. Нужно уметь опрашивать сокеты и очередь событий. Нужно отвечать на события с сохранением инвариантов протокола, чтоб не путать, кому что. И это непросто, учитывая общую асинхронность системы стенд/тестер. Нужно элементарно уметь завершать работу по запросу и уметь реагировать на сетевые сбои.

    Вот тут я не очень понимаю. По-моему ты смешиваешь логику с техническим аспектом исполнения. Асинхронный код может чудесно работать вообще на одном треде, делая все перечисленные тобой задачи. Вроде у тебя тут нет вычислений в данном случае, которые заблокируют обработку запросов.
    Я бы отделил логику от вопроса сколько там тредов будет под капотом это все выполнять (в тредпул бы вынес или ещё как - вопрос отдельный).

    Так что не очень понял, при чем там потоки и std/WinAPI.

    Добавлено
    Цитата Qraizer @
    Сокеты умеют таймауты только на select()

    Зачем select? Если уж работаешь на низком уровне и именно на винде, то используй iocp. А asio нет возможности юзнуть?

    Добавлено
    Цитата Qraizer @
    Есть условные переменные, которым в довесок подавай мютексы и лямбды, да ещё и соизволь сам нотифить ими в нужные моменты. Хочешь завершить работу, дождись джойнов от всех ниток, иначе хрен тебе в журналах аудита от эксепшнов. В итоге код управления потоками представляет собой жуткий винегрет.

    Так что мешает использовать "классический" асинхронный подход в духе asio (тем более, что насколько мне известно, на основе него будет что-то в новых стандартах) с исполнением на нескольких тредах, без привязки логики к тредам, без выделения "специализированных" тредов?

    Добавлено
    Qraizer, а есть какая-то возможность упростить пример так, чтоб можно было тут с кодом поиграться и разные варианты его обыграть/обсудить?
    Сообщение отредактировано: D_KEY -
      Коллеги, я дико извиняюсь, но реально... до следующей недели мы в глубоком кранче. Позже я обязательно тут появлюсь и всё-всё почитаю.
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,8256 ]   [ 16 queries used ]   [ Generated: 6.08.21, 01:15 GMT ]