|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
Столкнулся со странным поведением программы. Накидал вот тест: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Цикл отрабатывает мгновенно, что видно по числу в заголовке окна, а вот файлики в папке создаются неохотно, если поставить задержку 1000 то где-то 10 в секунду, если 50000 то примерно один в секунду. Что мешает всем таскам выполниться сразу? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 04:42 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
iskatelsqlЧто мешаетsleep, размер пула, накладные расходы на параллельность ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 07:20 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
iskatelsqlЦикл отрабатывает мгновенноа почему должно быть иначе, он же не ждет выполнения задач ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 09:00 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
iskatelsql, было бы странно, если бы не было так ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 09:43 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
Я почему-то думал что таск это тоже что и поток, только в "улучшенном" виде. Для чего тогда эти таски? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 13:05 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
iskatelsqlЯ почему-то думал что таск это тоже что и поток, только в "улучшенном" виде. Для чего тогда эти таски?делаь потоки, только в улучшенном виде. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 13:20 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
Petro123делаь потоки, только в улучшенном виде.нет таск не эквивалентен потоку ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 13:59 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
iskatelsqlЯ почему-то думал что таск это тоже что и поток, только в "улучшенном" виде. Для чего тогда эти таски? Если 100 потоков одновременно будут что-то делать нагружая проц, то на каждый логический проц будет 10+ потоков и все будет тормозить из-за постоянного переключения контекста потоков. Т.е. существенная часть работы проца будет связана с диспетчеризацией потоков. Более эффективная стратегия использовать столько потоков, сколько лог.процов. В реале можно чуть больше, т.к. поток может приостановиться ожидая ответа диска/сети и т.п. Поэтому запускается столько тасков сколько разрешено запускать параллельно, а остальные ждут и запускаются по мере завершения ранее запущеных. Если не путаю, количество потоков исполняющих такси как-то настраивается, погугли. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 14:17 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
Dima T, Сдается мне, тут что-то еще... Вот в приведенном примере, когда я ставлю задержку 50 сек. почему стартует не какое-то количество, а по одному в секунду? Ведь никакой нагрузки то нет, sleep всего-лишь. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 14:31 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
Shocker.Pro, - Откуда дети берутся? - Аист приносит. Ты: - нет, их не аист приносит)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 14:32 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
iskatelsqlСдается мне, тут что-то еще..да. Возьми книжку с примером, и выполни пример. Там много чего есть, чем бездумно тормозить поток. Даже есть рекомендация от MS таким деятелям, которые поток тормозят. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 14:34 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
iskatelsqlВедь никакой нагрузки то нет, sleep всего-лишь. Управляя тасками извне непонятно sleep() у тебя выполняется или майнинг идет со 100% нагрузкой на проц. Правило построено на среднестатистических наблюдениях. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 14:40 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
Dima T, Понятно. Переделал программу на потоки - все заработало как надо. Хех, а в каком то описании читал, мол потоки вчерашний день, а таски крестиком вышивать умеют и пиво приносят. А они вон оно как - пока не пнешь не полетит. Не для меня они вобщем... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 14:43 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
iskatelsqlПонятно. Переделал программу на потоки - все заработало как надо.Можно было просто запускать Task с LongRunning опцией, тогда потоки брались бы не из пула. Но что так, что с тредами - подход плохой - ты создаешь потоки, которые ничего не делают, зато жрут ресурсы как не в себя. Лучше использовать асинхронный ввод-вывод на стримах. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 14:52 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
iskatelsqlХех, а в каком то описании читал, мол потоки вчерашний день, а таски крестиком вышивать умеют и пиво приносят.так и есть, ты просто не удосужился изучить вопрос ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 14:53 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
Petro123Shocker.Pro, - Откуда дети берутся? - Аист приносит. Ты: - нет, их не аист приносит))))пора взрослеть ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 14:53 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
Shocker.Proкоторые ничего не делают, зато жрут ресурсы как не в себя. Я так понимаю, ты за локальные ресурсы переживаешь... У меня же потоки лезут "в эти ваши интернеты" и в основном ждут ответа в следующей серии... Просто я, поверив рекламе, решил что таски лучше будут. а какой мне с них смысл, если на потоках программа отрабатывает уже тогда, когда таски только начинают "раскачиваться" ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 15:09 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
iskatelsqlПросто я, поверив рекламе, решил что таски лучше будут. а какой мне с них смысл, если на потоках программа отрабатывает уже тогда, когда таски только начинают "раскачиваться"Если ты не умеешь пользоваться инструментом, это не значит, что он плохой. Тогда непонятно, зачем ты спрашиваешь совета. iskatelsqlУ меня же потоки лезут "в эти ваши интернеты" и в основном ждут ответа в следующей серии... Еще хуже, если ты это сделаешь с помощью потоков, а не с помощью асинхронного программирования. Совет - забудь слово Thread и изучай тему. Не хочешь - пили как хочешь, но не спрашивай, как правильно ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 15:17 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
Shocker.ProСовет - забудь слово Thread и изучай тему. И с какого бока ее начать изучать? Вот код у меня как в примере. только вместо sleep обращение к серверу, с его таймаутами. И тупила программа так же как в примере. Ну задал я тут вопрос, получил первых три очень многозначительных ответа, понял что полез не туда и протоки наше все. Теперь ты говоришь что вроде как изначальный подход верный был. Но он же не работал как надо... Ничего не понимаю (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 15:22 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
iskatelsqlИ с какого бока ее начать изучать?с теории. Есть книжки такие, учебниками называются. iskatelsqlВот код у меня как в примере. только вместо sleep обращение к серверу, с его таймаутамиОбращение может быть разное и я подозреваю, что обращаешься ты к синхронным методам вместо асинхронных. Ты же не приводишь свой реальный код, но требуешь ответов. iskatelsqlНо он же не работал как надо...еще раз. Не он не работал как надо, а ты не понял, как правильно им пользоваться ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 15:40 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
Shocker.Proчто обращаешься ты к синхронным методам вместо асинхронных Ну да, так я с помощью таска и хотел сделать синхронный метод асинхронным, чтоб одновременно выполнялись. А в коде - просто вызов ф-ции из внешней сишной длл, и она либо сразу возвращается либо по таймауту секунд через пять. Можно вполне считать что там sleep(random(от 1 до 5000)) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 15:48 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
iskatelsqlА в коде - просто вызов ф-ции из внешней сишной длл, и она либо сразу возвращается либо по таймауту секунд через пять. Можно вполне считать что там sleep(random(от 1 до 5000))iskatelsqlУ меня же потоки лезут "в эти ваши интернеты"то одно, то другое, то третье... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 15:55 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
Shocker.Proто одно, то другое, то третье... А что не так? ф-ция то та в интернеты лезет... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 16:02 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
iskatelsqlА что не так? ф-ция то та в интернеты лезет...iskatelsqlи она либо сразу возвращается либо по таймауту секунд через пятьа где она тут лезет. Если СРАЗУ возвращает, значит длительная операция не начиналась. Если таймаут - значит ошибка. А где тут собственно полезная работа-то? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 16:04 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
Shocker.ProА где тут собственно полезная работа-то? А что ты имеешь ввиду под полезной работой? Ну приконектилась она, скачала пару байтиков и вышла или подождала таймаута и вышла. Ну будь это не внешняя длл, а сокет какой нить, что бы изменилось? Я тебя не понимаю. С потоками то все работает как надо. А ты говоришь что с потоками не правильно, потом говоришь что у меня задача неправильная. Кинь чтоль ссылку на пример того что имеешь ввиду. А то я уже подозреваю что ты из секты "потоки зло" и агитируешь всех использовать таски, пусть даже программа в итоге будет делать не то что изначально задумано :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 16:25 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
можно реализовать свой taskscheduler, в котором вы реализуете свой пул потоков, сами определите порядок выполнения, зависимости,возможность выбора приоритетных тасков или какие то свои прибамбасы, и прочее. Не особо сложно делается. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 16:55 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
iskatelsqlЯ тебя не понимаю. С потоками то все работает как надо. А ты говоришь что с потоками не правильно, потом говоришь что у меня задача неправильная. Кинь чтоль ссылку на пример того что имеешь ввиду. А то я уже подозреваю что ты из секты "потоки зло" и агитируешь всех использовать таски, пусть даже программа в итоге будет делать не то что изначально задумано :)Я писал выше - если использовать LongRunning - ты получишь то поведение, которое добился через Thread-ы, только с тасками. Ну и причем тут секта? iskatelsqlНу будь это не внешняя длл, а сокет какой нить, что бы изменилось?Изменилось бы то, что ты бы использовать асинхронные методы доступа к сокетам, и потоки не использовались бы вообще. iskatelsqlА что ты имеешь ввиду под полезной работой?ну так "скачала пару байтиков" - это полезная работа. Но изначально у тебя было только два варианта 1) вернула управление сразу (то есть ничего не качала) 2) отвалилась по таймауту (тоже не получила данные) Поэтому я и говорю - ты рассказываешь сначала про файлы, потом про обращение к интернету, потом про использование библиотеки с синхронными методами, теперь сокеты, щас еще что--нибудь всплывет ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 17:02 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
iskatelsqlНу приконектилась она, скачала пару байтиковделят по слоям сегодня. Байтики это транспортный уровень. А бизнес логика программы это уровень выше. Поэтому MS прикрыл прямое обращение к потокам. Чтобы лапшу не делали и слово байтики прикладник не произносил. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 17:07 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
Petro123Чтобы лапшу не делали и слово байтики прикладник не произносил.У него неуправляемый код - он вынужден произносить )) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 17:11 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
Shocker.ProPetro123Чтобы лапшу не делали и слово байтики прикладник не произносил.У него неуправляемый код - он вынужден произносить ))любой код делят на слои. Пусть байты свои заворачивает в транспортный уровень. А наверху, хоть message queue строит. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 17:21 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
iskatelsql, почитай Рихтера . Он доступно описывает в чем разница потоков, тасков и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 20:32 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
Petro123Пусть байты свои заворачивает в транспортный уровень. Ты упертый какой-то, в заворачивания. Нахрена оно надо если не надо? Вот тебе пример - в лохматом году, когда шарп был еще не шарп, а подобие. (я на питоне тогда это делал) Некий малоизвестный сайт "лайвжасмин" с блекджеком и... выпустил офигительную акцию, которая продержалась несколько лет, а именно - регишься и тебе 5 "подглядок" в привате, почту апрувил - и уже не 5 а 10 или 15 (хз отчего так) ну и где наша не пропадала - регимся миллионами. "подглядка" - 20 секунд., запускаем "подглядки" с зазором в пару секунд = ок. Стрим общий, ищем "хвосты" соединяем. Все это лирика, главное в том - надо ли мне было разбирать RTMP по составляющим, или достаточно было найти регекспами заголовки чанков, чтоб достать оттуда видео? По секрету скажу... не надо было ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2019, 02:46 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
iskatelsqlPetro123Пусть байты свои заворачивает в транспортный уровень. Ты упертый какой-то, в заворачивания. Нахрена оно надо если не надо? Вот тебе пример - в лохматом году, когда шарп был еще не шарп, а подобие. (я на питоне тогда это делал) Некий малоизвестный сайт "лайвжасмин" с блекджеком и... выпустил офигительную акцию, которая продержалась несколько лет, а именно - регишься и тебе 5 "подглядок" в привате, почту апрувил - и уже не 5 а 10 или 15 (хз отчего так) ну и где наша не пропадала - регимся миллионами. "подглядка" - 20 секунд., запускаем "подглядки" с зазором в пару секунд = ок. Стрим общий, ищем "хвосты" соединяем. Все это лирика, главное в том - надо ли мне было разбирать RTMP по составляющим, или достаточно было найти регекспами заголовки чанков, чтоб достать оттуда видео? По секрету скажу... не надо было Ух ты, есть чем гордиться и внукам рассказывать ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2019, 07:04 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
iskatelsqlНахрена оно надо если не надо?некоторые дома мусор не разделяют на стекло, пластик и... мусор. Как им объяснить что на сегодняшний текущий момент надо разделять? Никак. iskatelsqlВсе это лирика Дисциплина такая есть - архитектура. Паттерны всякие)) Но если ты не чувствовал необходимость, значит тебе не надо. Есть высокотехнологичные компании а ля Маск, где это надо. Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2019, 07:07 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
iskatelsqlЦикл отрабатывает мгновенно, что видно по числу в заголовке окна, а вот файлики в папке создаются неохотно, если поставить задержку 1000 то где-то 10 в секунду, если 50000 то примерно один в секунду. Что мешает всем таскам выполниться сразу? 1. Создавать кучу файлов - само по себе медленно. И неочевидно, что именно запись на диск нужно параллелить. Это имеет смысл, если только у вас несколько дисков. 2. Как вы посчитали, что "если поставить задержку 1000 то где-то 10 в секунду, если 50000 то примерно один в секунду"? Увидели в эксплорере? ))) 3. Не нужно создавать кучу тасков в данном примере, так как нужно контролировать количество процессоров/ядер, нагрузку. У вас этого нет. Попробуйте Parallel.ForEach, который использует пул потоков и сам разруливает оптимальное количество параллельных действий. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2019, 11:33 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
Petro123iskatelsqlНахрена оно надо если не надо?некоторые дома мусор не разделяют на стекло, пластик и... мусор. Как им объяснить что на сегодняшний текущий момент надо разделять? Никак. iskatelsqlВсе это лирика Дисциплина такая есть - архитектура. Паттерны всякие)) Но если ты не чувствовал необходимость, значит тебе не надо. Есть высокотехнологичные компании а ля Маск, где это надо. Удачи!какой в этом смысл, если мусорка в итоге одна? думаю многие бы разделяли, если бы после этого можно было его выкинуть раздельно ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2019, 13:02 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
Roman Mejtesесли мусорка в итоге одна?уже не одна. В отсталой неразвитой стране, районе, городе, квартире - одна. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2019, 13:24 |
|
Почему Task - и так странно запускаются.
|
|||
---|---|---|---|
#18+
skyANAУх ты, есть чем гордиться и внукам рассказывать Я вчера немного выпил, и возникла острая необходимость поговорить, но в 3 часа ночи нескем. Вот решил написать :) Arm79Увидели в эксплорере? Ну в тотал коммандере жамкал кнопку обновить... Примитивно конечно, зато свою задачу тест выполнил - стало понятно что они стартуют не одновременно. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2019, 17:24 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1398977]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 164ms |
0 / 0 |