Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Программирование Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: Легковесные последовательные подзадачи с возможностью блокировки  [new]
Хитроглазый
Member

Откуда:
Сообщений: 488
Aklin,
а что с ресурсами происходит пока задача заблокирована?
остаются занятыми? дедлоков не боитесь?
13 фев 19, 19:09    [21808876]     Ответить | Цитировать Сообщить модератору
 Re: Легковесные последовательные подзадачи с возможностью блокировки  [new]
Хитроглазый
Member

Откуда:
Сообщений: 488
Aklin,

а в целом совсем не ясно в чём вы видите проблему.

Aklin
число блокировок начинает расти.

и что?
13 фев 19, 19:33    [21808891]     Ответить | Цитировать Сообщить модератору
 Re: Легковесные последовательные подзадачи с возможностью блокировки  [new]
Aklin
Member

Откуда: Прямо сейчас меня здесь нет
Сообщений: 55649
Хитроглазый
Aklin,
а что с ресурсами происходит пока задача заблокирована?
остаются занятыми? дедлоков не боитесь?
Нет, ресурс блокирует определенную задачу, но при этом продолжает отвечать остальным задачам. Даже если дедлок будет (хотя это скорее невероятно чем маловероятно), то это можно считать нормальным поведением.


Хитроглазый
Aklin,

а в целом совсем не ясно в чём вы видите проблему.

Aklin
число блокировок начинает расти.

и что?
Сложность кода ресурсов и самих задач должна быть увеличена раз в десять чтобы обрабатывать новые запросы...



В общем пока без примера мне не удается нормально описать видимо...
13 фев 19, 22:57    [21808988]     Ответить | Цитировать Сообщить модератору
 Re: Легковесные последовательные подзадачи с возможностью блокировки  [new]
mayton
Member

Откуда: loopback
Сообщений: 39266
Aklin,

Ты можешь опубликовать макет этого приложения? Разумеется без бизнес тайн.
13 фев 19, 23:05    [21808993]     Ответить | Цитировать Сообщить модератору
 Re: Легковесные последовательные подзадачи с возможностью блокировки  [new]
Anatoly Moskovsky
Member

Откуда: Odessa
Сообщений: 6340
Aklin
После завершения или блокировки задачи управление возвращается в диспетчер.
После разблокировки задачи надо продолжить с того же места, на котором задача встала, включая всю иерархию стеков.

Корутины позволяют как раз это - прервать выполнение на произвольном уровне вложенности вызовов, а потом продолжить с того же места, включая состояние локальных переменных.
14 фев 19, 00:28    [21809009]     Ответить | Цитировать Сообщить модератору
 Re: Легковесные последовательные подзадачи с возможностью блокировки  [new]
alex55555
Member

Откуда:
Сообщений: 1729
Aklin
Потоков каких - ОС-потоков?

ОС рулит, во первых - процессами. Во вторых - потоками. Процесс включает кучу потоков. Процессом обычно является одно приложение, внутри которого может быть много потоков. В инглише это process и thread. И очень печально, что ты этих азов не знаешь.
14 фев 19, 13:02    [21809359]     Ответить | Цитировать Сообщить модератору
 Re: Легковесные последовательные подзадачи с возможностью блокировки  [new]
Aklin
Member

Откуда: Прямо сейчас меня здесь нет
Сообщений: 55649
alex55555
И очень печально, что ты этих азов не знаешь.

Речь не про это.
Речь про различие между каким-нибудь fiber и thread или coroutine
14 фев 19, 13:05    [21809367]     Ответить | Цитировать Сообщить модератору
 Re: Легковесные последовательные подзадачи с возможностью блокировки  [new]
mayton
Member

Откуда: loopback
Сообщений: 39266
Aklin
alex55555
И очень печально, что ты этих азов не знаешь.

Речь не про это.
Речь про различие между каким-нибудь fiber и thread или coroutine

Давай вернем топик в конструктив.

Разумеется тебя может забавлять, когда эксперты безо-всякой конкретики начинают говорить
о том что у них наболело. И я тоже могу поговорить. И так будет еще 100 страниц.

Есть единственный верный кейс как решить твою проблему. Смоделировать ее на макете.
И опубликовать его.

Это - конструктив.
14 фев 19, 13:29    [21809400]     Ответить | Цитировать Сообщить модератору
 Re: Легковесные последовательные подзадачи с возможностью блокировки  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6067
Специально на этот случай придумано.

https://ru.cppreference.com/w/cpp/thread/condition_variable

Производительность можно потестить - известно, что на win/lin скорости переключения и затраты могут быть разными в разы.

Тогда еще есть фиберсы.
14 фев 19, 14:01    [21809448]     Ответить | Цитировать Сообщить модератору
 Re: Легковесные последовательные подзадачи с возможностью блокировки  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 47094
Aklin
Задачу в какой-то момент нужно приостановить до определенной отмашки.

Нет, это проблема. Такую задачу надо разбить на две: первая выполняется до упора, вторая запускается по отмашке.
14 фев 19, 14:24    [21809480]     Ответить | Цитировать Сообщить модератору
 Re: Легковесные последовательные подзадачи с возможностью блокировки  [new]
Малыхин Сергей
Member

Откуда: г. Курск
Сообщений: 712
Без кода гадать можно долго но пока выглядит как переизобретение эвентлупа OR оконной процедуры OR главного цикла. кому как больше нравится.
Задачи берутся с начала очереди выполняются если задача сейчас выполнится не может то задача переносится в конец очереди. Пусть попозже попробует выполнится.
Или же функция обратного вызова пусть возвращает задачу в очередь.
14 фев 19, 15:26    [21809568]     Ответить | Цитировать Сообщить модератору
 Re: Легковесные последовательные подзадачи с возможностью блокировки  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 4254
Aklin,

coroutine(fiber) самое то, состояния скрыть помогают хорошо
но жрут....
15 фев 19, 00:23    [21810087]     Ответить | Цитировать Сообщить модератору
 Re: Легковесные последовательные подзадачи с возможностью блокировки  [new]
mayton
Member

Откуда: loopback
Сообщений: 39266
Подождем автора. Надеюсь ... макет уже близок к концу?

Кстате вероятен факт что в процессе формализации макета (неожиданно!) всплывут версии
по улучшению и наши советы станут не нужны.
15 фев 19, 01:02    [21810101]     Ответить | Цитировать Сообщить модератору
 Re: Легковесные последовательные подзадачи с возможностью блокировки  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 4254
mayton,

когда встаёт вопрос как соединить "несколько логических потоков вычислений" в один, то решений немного:
  • либо физическая изоляция в нити, а это всегда заведомо избыточные ресурсы
  • либо стейт-машина

    В ручную реализацию во втором варианте, при более менее сложной логике, я не верю, количество состояний растёт экспоненциально.
    Т.е. он конечно выгоднее по ресурсам, но без кодогенерации делать там особо нечего. В частной задаче это познания во "всемилюбимом" SUBSET_CONSTRUCTION + каком нибудь алгоритме минимизации стэйтов, типа Бржозовского.

    Если пишется не что-то типа NGINX, то хз, стоит ли овчинка выделки.
  • 15 фев 19, 09:30    [21810196]     Ответить | Цитировать Сообщить модератору
    Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
    Все форумы / Программирование Ответить