|
Легковесные последовательные подзадачи с возможностью блокировки
|
|||
---|---|---|---|
#18+
Aklin, а что с ресурсами происходит пока задача заблокирована? остаются занятыми? дедлоков не боитесь? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 19:09 |
|
Легковесные последовательные подзадачи с возможностью блокировки
|
|||
---|---|---|---|
#18+
Aklin, а в целом совсем не ясно в чём вы видите проблему. Aklinчисло блокировок начинает расти. и что? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 19:33 |
|
Легковесные последовательные подзадачи с возможностью блокировки
|
|||
---|---|---|---|
#18+
ХитроглазыйAklin, а что с ресурсами происходит пока задача заблокирована? остаются занятыми? дедлоков не боитесь?Нет, ресурс блокирует определенную задачу, но при этом продолжает отвечать остальным задачам. Даже если дедлок будет (хотя это скорее невероятно чем маловероятно), то это можно считать нормальным поведением. ХитроглазыйAklin, а в целом совсем не ясно в чём вы видите проблему. Aklinчисло блокировок начинает расти. и что?Сложность кода ресурсов и самих задач должна быть увеличена раз в десять чтобы обрабатывать новые запросы... В общем пока без примера мне не удается нормально описать видимо... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 22:57 |
|
Легковесные последовательные подзадачи с возможностью блокировки
|
|||
---|---|---|---|
#18+
Aklin, Ты можешь опубликовать макет этого приложения? Разумеется без бизнес тайн. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 23:05 |
|
Легковесные последовательные подзадачи с возможностью блокировки
|
|||
---|---|---|---|
#18+
AklinПосле завершения или блокировки задачи управление возвращается в диспетчер. После разблокировки задачи надо продолжить с того же места, на котором задача встала, включая всю иерархию стеков. Корутины позволяют как раз это - прервать выполнение на произвольном уровне вложенности вызовов, а потом продолжить с того же места, включая состояние локальных переменных. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 00:28 |
|
Легковесные последовательные подзадачи с возможностью блокировки
|
|||
---|---|---|---|
#18+
AklinПотоков каких - ОС-потоков? ОС рулит, во первых - процессами. Во вторых - потоками. Процесс включает кучу потоков. Процессом обычно является одно приложение, внутри которого может быть много потоков. В инглише это process и thread. И очень печально, что ты этих азов не знаешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 13:02 |
|
Легковесные последовательные подзадачи с возможностью блокировки
|
|||
---|---|---|---|
#18+
alex55555И очень печально, что ты этих азов не знаешь. Речь не про это. Речь про различие между каким-нибудь fiber и thread или coroutine ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 13:05 |
|
Легковесные последовательные подзадачи с возможностью блокировки
|
|||
---|---|---|---|
#18+
Aklinalex55555И очень печально, что ты этих азов не знаешь. Речь не про это. Речь про различие между каким-нибудь fiber и thread или coroutine Давай вернем топик в конструктив. Разумеется тебя может забавлять, когда эксперты безо-всякой конкретики начинают говорить о том что у них наболело. И я тоже могу поговорить. И так будет еще 100 страниц. Есть единственный верный кейс как решить твою проблему. Смоделировать ее на макете. И опубликовать его. Это - конструктив. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 13:29 |
|
Легковесные последовательные подзадачи с возможностью блокировки
|
|||
---|---|---|---|
#18+
Специально на этот случай придумано. https://ru.cppreference.com/w/cpp/thread/condition_variable Производительность можно потестить - известно, что на win/lin скорости переключения и затраты могут быть разными в разы. Тогда еще есть фиберсы. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 14:01 |
|
Легковесные последовательные подзадачи с возможностью блокировки
|
|||
---|---|---|---|
#18+
AklinЗадачу в какой-то момент нужно приостановить до определенной отмашки. Нет, это проблема. Такую задачу надо разбить на две: первая выполняется до упора, вторая запускается по отмашке. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 14:24 |
|
Легковесные последовательные подзадачи с возможностью блокировки
|
|||
---|---|---|---|
#18+
Без кода гадать можно долго но пока выглядит как переизобретение эвентлупа OR оконной процедуры OR главного цикла. кому как больше нравится. Задачи берутся с начала очереди выполняются если задача сейчас выполнится не может то задача переносится в конец очереди. Пусть попозже попробует выполнится. Или же функция обратного вызова пусть возвращает задачу в очередь. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 15:26 |
|
Легковесные последовательные подзадачи с возможностью блокировки
|
|||
---|---|---|---|
#18+
Aklin, coroutine(fiber) самое то, состояния скрыть помогают хорошо но жрут.... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 00:23 |
|
Легковесные последовательные подзадачи с возможностью блокировки
|
|||
---|---|---|---|
#18+
Подождем автора. Надеюсь ... макет уже близок к концу? Кстате вероятен факт что в процессе формализации макета (неожиданно!) всплывут версии по улучшению и наши советы станут не нужны. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 01:02 |
|
Легковесные последовательные подзадачи с возможностью блокировки
|
|||
---|---|---|---|
#18+
mayton, когда встаёт вопрос как соединить "несколько логических потоков вычислений" в один, то решений немного: либо физическая изоляция в нити, а это всегда заведомо избыточные ресурсы либо стейт-машина В ручную реализацию во втором варианте, при более менее сложной логике, я не верю, количество состояний растёт экспоненциально. Т.е. он конечно выгоднее по ресурсам, но без кодогенерации делать там особо нечего. В частной задаче это познания во "всемилюбимом" SUBSET_CONSTRUCTION + каком нибудь алгоритме минимизации стэйтов, типа Бржозовского. Если пишется не что-то типа NGINX, то хз, стоит ли овчинка выделки. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 09:30 |
|
|
start [/forum/topic.php?fid=16&gotonew=1&tid=1339990]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
166ms |
get topic data: |
11ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 253ms |
total: | 540ms |
0 / 0 |