|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Хочу научится работать с многопточностью ) К примеру, в базе есть 300 записей. Я хочу запустить выборку по 100 записей в 3 потоках одновременно. Подскажите как действовать и что почитать. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2012, 15:47 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Newbie2002, 300 записей получать в 3 потока это сурово.... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2012, 17:50 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Lelouch300 записей получать в 3 потока это сурово.... да, пожалуй задачка для БД непосильная. надо бы увеличить количество потоков. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2012, 18:11 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2012, 18:19 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Ну хорошо, мне надо увеличить скорость выборки 30 000 000 записей, из сложной структуры соответственно 30 млн записей тянут за собой еще записии и сумарно получается под 100 150 млн записей. Так круче? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2012, 19:14 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУ, Спасибо за ответ буду разбираться ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2012, 19:14 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Newbie2002, можно посмотреть в сторону MARS (Multiple Active Recordsets). ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2012, 20:02 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
bazile, Спасибо я использую MultipleActiveResultSets=true ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2012, 20:12 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУ http://codearticles.ru/Home/ArticleView/1156 Какая прелесть!! муфаил, а если в десяти потоках нужно будет читать данные, то продолжать соpy-past еще на пару страниц? PS выборка результатов будет последовательная net 4.5 Создаешь нужный метод, который будет считывать данные, далее с помощью Paraller.ForAll или PLinq запускаешь их a'la Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2012, 22:10 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVa, без спорно, идея великолепная, но чел только только про потоки услышал а вы ему таски с паралелями, так можно лишить сознания пациента. Я бы с начало дал ему попробовать утрамбовать "под 100 150 млн записей" в типизированный датасет, а потом глядя на динамику выздоровления - назначил бы потоки.. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2012, 23:45 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Где-то в степиSeVa, без спорно, идея великолепная, но чел только только про потоки услышал а вы ему таски с паралелями, так можно лишить сознания пациента. Я бы с начало дал ему попробовать утрамбовать "под 100 150 млн записей" в типизированный датасет, а потом глядя на динамику выздоровления - назначил бы потоки.. А думал, что проще async\await. MS тужится, а создается полное впечатление, что про net 4.5 мало кто слышал. Странная картина: c одной стороны облака, а с другой айтишники в глухих землянках отсиживаются без выхода в интернет ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2012, 23:59 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaКакая прелесть!! муфаил, а если в десяти потоках нужно будет читать данные, то продолжать соpy-past еще на пару страниц? Кухарочка, а если наступит новый год и дед мороз назовет тебя безупречным ламером, как в этом случае быть с потоками? P.S. Кто-то недавно пищал про убогость тасков и воспевал говно-Rx. Кодеманка поменяла ориентацию? Шедеврально. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2012, 00:04 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУSeVaКакая прелесть!! муфаил, а если в десяти потоках нужно будет читать данные, то продолжать соpy-past еще на пару страниц? Кухарочка, а если наступит новый год и дед мороз назовет тебя безупречным ламером, как в этом случае быть с потоками? P.S. Кто-то недавно пищал про убогость тасков и воспевал говно-Rx. Кодеманка поменяла ориентацию? Шедеврально. Rx можно совсем травмировать. code-monkey, расскажи по каким еще помойкам шаришься, выискивая такие объедки, которые запостил выше? Да, посмотри лучше на свою ориентацию, сколько от тебя было вони про космические корабли, html5/js, а как выяснилось, ты их в глаза не видел и не собираешься. Чмо пустопорожнее ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2012, 00:14 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Rx не можно травмировать, а ты уже им травмирован. Причем, неизлечимо. Остальные высеры не имеют какой-либо ценности для темы, так что извини, опять ты обосрался. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2012, 00:27 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Newbie2002, Если диск базы данных один Тогда выборка в много потоков не даст никакого прироста производительности. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2012, 00:28 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУ, SeVa Учитесь: Green2Если диск базы данных один Тогда выборка в много потоков не даст никакого прироста производительности. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2012, 00:52 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Green2, Выборку делаю с мощного сервера а не с локального компьютора, поэтому у думаю про многопоточность ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2012, 00:58 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУ, SeVa Учитесь: Green2Если диск базы данных один Тогда выборка в много потоков не даст никакого прироста производительности. Я теперь всегда использую два сидирома, что бы не плодить потоки. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2012, 00:59 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Newbie2002, это у Вас - СУБды, птички да слоники, у реальных пацанов базы на DVD-RW, и точка... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2012, 01:05 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Newbie2002Green2, Выборку делаю с мощного сервера а не с локального компьютора, поэтому у думаю про многопоточностьХорошо, тогда вопросы, 1. Что это за сервер, как у него организованы диски. 2. Какая база данных. И самое главное, зачем вам схема в три потока? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2012, 01:15 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Green2, сервер- база данных , это абстракция, как он утроен нам без разницы, на сказевых или простых тем более. единственное что аксиома, он может обслуживать одновременно большое количество участников. этому критерию удовлетворяют все хранилища баз данных, доступ к серверу, абстракция тем более, ибо это происходит через провайдеров которые реализуют интерфейс доступа. Для всех типов баз он одинаковый, тюнинг не в счет. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2012, 01:26 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Green21. Что это за сервер, как у него организованы диски. 2. Какая база данных. эти вопросы актуальны если количество запросов в секунду чуть больше чем рыбы в речке. а если 3 запроса в час - то реально не имеет значения какие винты. Raid просто застрелится от скуки. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2012, 02:20 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Где-то в степиМСУ, SeVa Учитесь: Green2Если диск базы данных один Тогда выборка в много потоков не даст никакого прироста производительности. Выполни мой пример. Не ленись. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2012, 12:49 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУ, ну ты че, юмор потерял, ну просто я такую шузу а виде полумесяца забыл поставить()) после вертикальных двух точек.. код... не хочу, тем более я вчера опять экспериментировал с пиком баллмера.. я его смотрел так поверхностно секунд 5-6, там все понятно до ужаса, и решена проблема игольного ушка для доступа к базе.. код работоспособный и верный, толь ко вот я никак не могу понять зачем нам многоточечная загрузка, что ж так жалеть базу что надо весь табун записей загонять на клиента и там его сортировать, с этим прекрасно справляются базы. Запрос к базе должен быть точный и краткий, как апперкот - ответ такой же. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2012, 13:25 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУГде-то в степиМСУ, SeVa Учитесь: пропущено... Выполни мой пример. Не ленись. Мудафаил щедро делится объедками web помоек. Налетай, пока не разобрали!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2012, 13:52 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaМудафаил щедро делится объедками web помоек. Налетай, пока не разобрали!!! Кухаркам невдомёк, что там вебом вообще не пахнет. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2012, 14:25 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Где-то в степиЗапрос к базе должен быть точный и краткий, как апперкот - ответ такой же. +1 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2012, 14:25 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУSeVaМудафаил щедро делится объедками web помоек. Налетай, пока не разобрали!!! Кухаркам невдомёк, что там вебом вообще не пахнет. У тебя всегда пахнет одним, теперь кроме собственного начал еще выкладывать из web помоек на русском. Обычно, когда ты нагадишь сам на себя и чувствуешь себя в тепле, то начинаешь с удвоенной силой продолжать класть себе на голову. Процесс так тебе нравится, что уже не остановить никому. Модераторы, уберите клавиатуру у этой обезьянки. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2012, 17:08 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaМСУпропущено... Кухаркам невдомёк, что там вебом вообще не пахнет. У тебя всегда пахнет одним, теперь кроме собственного начал еще выкладывать из web помоек на русском. Обычно, когда ты нагадишь сам на себя и чувствуешь себя в тепле, то начинаешь с удвоенной силой продолжать класть себе на голову. Процесс так тебе нравится, что уже не остановить никому. Модераторы, уберите клавиатуру у этой обезьянки. Твоё унылое зловоние от собственной беспомощности со своим недо-SL разъедает твой тухлый мозг, когда моск поглощен, зловоние начинает пожирать твою кухарскую сущность изнутри, когда и там всё попачкано - начинаешься изгынать тонны слизи в форум. Такой у тебя процесс и тебе это нравится. Ты очень занятная обезьяна. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2012, 19:19 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Муфлон, у тебя кол-во слизи-сообщений в 10 раз больше моего. ЗЫ А за меня не переживай, сейчас у меня проект никак не связан с SL. Он для меня не единственный, ты о себе лучше позаботься, скоро похоронят asp.net. Перейти на java ты сможешь только во сне. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2012, 20:07 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaМуфлон, у тебя кол-во слизи-сообщений в 10 раз больше моего. ЗЫ А за меня не переживай, сейчас у меня проект никак не связан с SL. Он для меня не единственный, ты о себе лучше позаботься, скоро похоронят asp.net. Перейти на java ты сможешь только во сне. Не пецди, тарахтушка. Твоя слизь в 10 раз насыщеней, полоумный склеротик. У тебя не могут быть новых проектов, тебя давно выбросили на свалку, так же как и сл. Про асп.нет не ссы, лет 20 задела на нем еще есть, первое десятилетие давно ак перевалило. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2012, 21:23 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУSeVaМуфлон, у тебя кол-во слизи-сообщений в 10 раз больше моего. ЗЫ А за меня не переживай, сейчас у меня проект никак не связан с SL. Он для меня не единственный, ты о себе лучше позаботься, скоро похоронят asp.net. Перейти на java ты сможешь только во сне. Не пецди, тарахтушка. Твоя слизь в 10 раз насыщеней, полоумный склеротик. У тебя не могут быть новых проектов, тебя давно выбросили на свалку, так же как и сл. Про асп.нет не ссы, лет 20 задела на нем еще есть, первое десятилетие давно ак перевалило. Пару лет еще протянет. Посмотри совсем недавний апдейт для asp.net, все идет к тому, что им скоро даже пахнуть не будет. Будешь бутылки собирать. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2012, 23:46 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Почему автор решил, что в 4 потока он извлечет данные из БД быстрее чем в 1 поток, я что то не понял? При том если он будет работать с 1 массивом, то блокировки и т.д. Вот если бы автор читал из разных источников данные, было бы другое дело. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2012, 07:51 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
bazileNewbie2002, можно посмотреть в сторону MARS (Multiple Active Recordsets).Лучше посмотреть в сторону: "Каждой асинхронной операции своё соединение". ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2012, 07:59 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Green2Newbie2002, Если диск базы данных один Тогда выборка в много потоков не даст никакого прироста производительности.Кэш данных СУБД? Или о каком диске идёт речь? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2012, 08:00 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Алексей К, Я чуйкой понял что о DVD , что в переходах базами торгуют, один сидиром - один поток ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2012, 08:57 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaПару лет еще протянет. Посмотри совсем недавний апдейт для asp.net, все идет к тому, что им скоро даже пахнуть не будет. Будешь бутылки собирать. Пару десятков лет, ты хотел сказать. Посмотрел совсем недавний апдейт для asp.net и чё? Пока настенет время собирания бутылок на асп.нет, ты окончательно загнешься от недостатка перловой каши со своим унылым xaml, чудилко. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2012, 09:34 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Где-то в степиАлексей К, Я чуйкой понял что о DVD , что в переходах базами торгуют, один сидиром - один потокНу тогда ладно. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2012, 09:49 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУSeVaПару лет еще протянет. Посмотри совсем недавний апдейт для asp.net, все идет к тому, что им скоро даже пахнуть не будет. Будешь бутылки собирать. Пару десятков лет, ты хотел сказать. Посмотрел совсем недавний апдейт для asp.net и чё? Пока настенет время собирания бутылок на асп.нет, ты окончательно загнешься от недостатка перловой каши со своим унылым xaml, чудилко. Муфлон, мне трогательны твои переживания, но они ни к чему. SL/WPF - это только две технологии из того, что я уже переживал. Я даже в резюме только последние 10 лет указываю и этого хватает за глаза. Я это делал и делаю постоянно и мне без разницы на чем. А ты только штаны в богадельне просиживал, да тупо конролы перетаскивал с единственным asp, который давно уже протух вместе с твоим мозжечком. Чтобы понять скудность багажика твоих знаний достаточно зайти на твой говносайтец - codearticles.ru. Это сборник рецептов дебила для дебилов ЗЫ А что ты больше не вякаешь про "высокое быстродействие" html, "оптимизацию css" которой по сути нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2012, 09:50 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaМуфлон, мне трогательны твои переживания, но они ни к чему. SL/WPF - это только две технологии из того, что я уже переживал. Я даже в резюме только последние 10 лет указываю и этого хватает за глаза. Только за наличие этих буков в этом безграмотном резюме стоит гнать тебя ссаным веником за шиворот из избы. Кому сейчас нужны такие кухарки? Ну разве что на миску риса, подметать избу вместе джуниорами? Тогда да, я тебя возьму в качестве расстрельного мяса, но не более. SeVaЯ это делал и делаю постоянно и мне без разницы на чем. А ты только штаны в богадельне просиживал, да тупо конролы перетаскивал с единственным asp, который давно уже протух вместе с твоим мозжечком. Что ты там постоянно делаешь, чудилко? Ты MVC от мембершипа отличить не можешь, дикарь бездарный. Иди букварём убей себя лучше, делает он что-то там. Бугага. SeVaЧтобы понять скудность багажика твоих знаний достаточно зайти на твой говносайтец - codearticles.ru. Это сборник рецептов дебила для дебилов Тогда почему ты еще там не зарегистрировался? SeVaЗЫ А что ты больше не вякаешь про "высокое быстродействие" html, "оптимизацию css" которой по сути нет? По сути нет мозга в твоей унылой черепной коробке. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2012, 10:51 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaПару лет еще протянет. Посмотри совсем недавний апдейт для asp.net, все идет к тому, что им скоро даже пахнуть не будет. И чё, php только останется? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2012, 11:29 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Уровню дискуссии в теме поражен. Newbie2002Хочу научится работать с многопточностью ) К примеру, в базе есть 300 записей. Я хочу запустить выборку по 100 записей в 3 потоках одновременно. Подскажите как действовать и что почитать. Спасибо. Есть несколько вариантов работы с много поточностью. Классическая многопоточность. Объявляем треды, в каждом треде делаем запрос.... Асинхронные рекордсеты/датасеты. Зачастую простое решения для сложной СУБД логики. Paraller.For , PLinq - просто и красиво. Но - доступно только для 4 FW и применимо далеко не для всех задач Имхо вам хочется изучить 1 вариант - и изучайте. Для реальной работы пользы будет скорее минимум, но изучать можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2012, 11:42 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
dvimУровню дискуссии в теме поражен.Это не дискуссия, это ср@ч. dvimКлассическая многопоточность. Объявляем треды, в каждом треде делаем запрос....Не надо так делать. dvimАсинхронные рекордсеты/датасеты.Это что? Нужен пример. dvimЗачастую простое решения для сложной СУБД логики.Сложность логики в СУБД значения не имеет. dvimParaller.For , PLinq - просто и красиво. Но - доступно только для 4 FW и применимо далеко не для всех задачParallel тут ни к чему. Тут к месту Task на базе Async Pattern. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2012, 13:50 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Алексей КParallel тут ни к чему. Тут к месту Task на базе Async Pattern. А по попе за параллель? :) Код: c# 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2012, 14:04 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Алексей К, имхо автор просто хочет поучиться работать с потоками. Для этого белыми нитками привязывается задача (иначе бы она была описана по другому) .... такое бывает. имхо потому автору следует разбираться с обычной потоковой моделью - делать что он хочет. В клиенте СУБД-многопоточность нужна очень редко. У нас - зачитка огромного маcсива xls , и то это сервис.... Если есть долгоиграющие запросы - то разумно использовать совершенно другие механизмы. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2012, 14:14 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Newbie2002, Я как разработчик бд должен напомнить: Это имеет делать только если запрос можно разбить на N и распараллелить, И делать это имеет смысл только через N соединений с бд. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2012, 19:47 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Не ребята, а вы точно в лесу все живете. Ни один не сказал про новую модель - асинхронность без много поточности, которая доступна в Net 4.5. Эта история нужна везде: на клиенте для параллельных запросов, чтобы не было такой унылости как на web страницах, и на сервере, чтобы было скалирование ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2012, 22:02 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaНе ребята, а вы точно в лесу все живете. Ни один не сказал про новую модель - асинхронность без много поточности, которая доступна в Net 4.5. Эта история нужна везде: на клиенте для параллельных запросов, чтобы не было такой унылости как на web страницах, и на сервере, чтобы было скалирование Безграмотная кухарка, async/await запускает задачу в фоновом потоке и при ее завершении выполняет код в основном потоке, в результате чего код выглядит почти как синхронный (включая обработку исключений). Садись, двойка. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2012, 22:55 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaНе ребята, а вы точно в лесу все живете. Ни один не сказал про новую модель - асинхронность без много поточности, которая доступна в Net 4.5. знали бы разработчики 4.5 - как это у них получилось - асинхронность в 1м потоке - они бы сильно удивились. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2012, 23:02 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Очередной отжиг тупорылой кухарки, как забавно в очередной раз опускать Севу в помои ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2012, 23:08 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVa асинхронность без много поточности на клиенте для параллельных запросов согласен, но в await надо делать свой конект к базе ибо мы не проллезем через игольное ушко общего конекта.. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2012, 23:39 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Где-то в степиSeVa асинхронность без много поточности на клиенте для параллельных запросов согласен, но в await надо делать свой конект к базе ибо мы не проллезем через игольное ушко общего конекта.. connect'ы тоже асинхронные и суть не в этом. Нет тупого блокирования потока, пока выполняется запрос или другая асинхронная операция, которая связана с I/O. За счет этого получается совсем другое кино ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 00:12 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
beg-in-erSeVaНе ребята, а вы точно в лесу все живете. Ни один не сказал про новую модель - асинхронность без много поточности, которая доступна в Net 4.5. знали бы разработчики 4.5 - как это у них получилось - асинхронность в 1м потоке - они бы сильно удивились. ну скорее это он утрировано сказал, ведь в этой модели мы не создаем потоки, не используем локи и инвоки, все за нас делает компилятор, а вот сам термин асинхронность совсем может не подразумевать псевдопотоки , это скорее всего отношение порядка действий, что вполне можно добиться легально на одном потоке ( диспетчер событий), а уж в свете вытесняемой многозадачности говорить бессмысленно,это моё имхо. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 00:15 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУSeVaНе ребята, а вы точно в лесу все живете. Ни один не сказал про новую модель - асинхронность без много поточности, которая доступна в Net 4.5. Эта история нужна везде: на клиенте для параллельных запросов, чтобы не было такой унылости как на web страницах, и на сервере, чтобы было скалирование Безграмотная кухарка, async/await запускает задачу в фоновом потоке и при ее завершении выполняет код в основном потоке, в результате чего код выглядит почти как синхронный (включая обработку исключений). Садись, двойка. Mудафаил, ты полный му**к и не стесняешься об этом всем рассказывать. Нет никаких фоновых потоков для async/await, а есть конечный автомат, который создает компилятор. Чмо убогое, двойку тебе ставить не буду, для детсадовцев этого не делают ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 00:23 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaГде-то в степипропущено... согласен, но в await надо делать свой конект к базе ибо мы не проллезем через игольное ушко общего конекта.. connect'ы тоже асинхронные и суть не в этом. Нет тупого блокирования потока, пока выполняется запрос или другая асинхронная операция, которая связана с I/O. За счет этого получается совсем другое кино да бзн , нет ожидания as блокировок, пока не готов даже на эту тему вести беседу, на уровне кода все понятно. но пока не разбирался с шаманством компилятора, в принципе я представляю что там может быть. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 00:25 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Где-то в степиbeg-in-erпропущено... знали бы разработчики 4.5 - как это у них получилось - асинхронность в 1м потоке - они бы сильно удивились. ну скорее это он утрировано сказал, ведь в этой модели мы не создаем потоки, не используем локи и инвоки, все за нас делает компилятор, а вот сам термин асинхронность совсем может не подразумевать псевдопотоки , это скорее всего отношение порядка действий, что вполне можно добиться легально на одном потоке ( диспетчер событий), а уж в свете вытесняемой многозадачности говорить бессмысленно,это моё имхо. Асинхронность без много поточности в новой модели означает, что вызывающий поток не блокируется, а вся работа, если это возможно(метод имеет суффикс Async) перекладывается на операционку. В результате резко возрастает масштабируемость системы, которой раньше невозможно было добиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 00:27 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaМСУпропущено... Безграмотная кухарка, async/await запускает задачу в фоновом потоке и при ее завершении выполняет код в основном потоке, в результате чего код выглядит почти как синхронный (включая обработку исключений). Садись, двойка. Mудафаил, ты полный му**к и не стесняешься об этом всем рассказывать. Нет никаких фоновых потоков для async/await, а есть конечный автомат, который создает компилятор. Чмо убогое, двойку тебе ставить не буду, для детсадовцев этого не делают читал в свое время Липпера, рад статей на эту тему, там действительно он рассказывает о этой фитче как о реализации конечных автоматов ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 00:34 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Где-то в степиSeVaпропущено... connect'ы тоже асинхронные и суть не в этом. Нет тупого блокирования потока, пока выполняется запрос или другая асинхронная операция, которая связана с I/O. За счет этого получается совсем другое кино да бзн , нет ожидания as блокировок, пока не готов даже на эту тему вести беседу, на уровне кода все понятно. но пока не разбирался с шаманством компилятора, в принципе я представляю что там может быть. Ничего особо сложного ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 00:35 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaАсинхронность без много поточности в новой модели означает, что вызывающий поток не блокируется, ну в begininvike он ка бы тоже не блокируется а идет дальше ( это я так для порядка) просто интересно где он берет стек куда складывает барахло при разрыве планировщиком, как бы два таких стека в одном потоке на могут быть, он по идее должен весь диспетчер автоматов тужа ложить. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 00:44 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Чето я тупанул про стек, вполне легально ложится в один. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 00:57 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Где-то в степиЧето я тупанул про стек, вполне легально ложится в один. Для этого предназначен SynchronizationContext , но если есть возможность лучше его не использовать, тк может быть существенным тормозом ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 01:08 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVa, если оно завязано на уровне ядра - остроумное решение, завтра попробую разобраться. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 01:12 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Тормоза вполне объяснимы ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 01:13 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУАлексей КParallel тут ни к чему. Тут к месту Task на базе Async Pattern. А по попе за параллель? :) Код: c# 1. 2. 3. 4.
У нас запрос к БД. Выделять поток из пула на ожидание I/O глупо. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 06:21 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
dvimВ клиенте СУБД-многопоточность нужна очень редко.Нет. Запуск запросов к серверу (БД, веб-сервис и т. п.) в UI-потоке в наше время считается плохим тоном. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 06:28 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Ошибка Алексей К Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 06:32 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
beg-in-er, они ввели прерывания в основной поток и обрабатывают 2 поток через прерывания :)) (это была такая щутка) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 07:05 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Алексей КОшибка Алексей К Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
автор Monitoring the IAsyncResult’s WaitHandle (as returned from its AsyncWaitHandle property) has a few implications. First, since the APM pattern is all about asynchrony, most IAsyncResult implementations strive to avoid allocating the WaitHandle, only doing so lazily if it’s actually requested. Thus, by accessing the IAsyncResult’s AsyncWaitHandle property, FromAsync is likely forcing allocation of a WaitHandle (and the associated operating system primitives) that otherwise wouldn’t need to be allocated. Second, the only way to “monitor” a WaitHandle to know when it’s been set is to wait on it, which is a potentially blocking operation. Obviously, FromAsync isn’t going to block the current thread by waiting on this handle (that wouldn’t be very async of it), so instead it relies on the ThreadPool. It could queue a work item to block on the handle, but that would end up burning a ThreadPool thread for each such call. Instead, FromAsync relies on ThreadPool.RegisterWaitForSingleObject, a function that is specifically geared towards using the ThreadPool to more efficiently wait for handles. According to the MSDN documentation, it does so by waiting on multiple handles from a single thread via WaitForMultipleObjects; however, there are a limit to how many handles it can wait on from each thread, so while this will end up burning fewer threads than if we blocked one thread per handle, it’s still far from ideal. async\await не будет ничего блокировать при вызовах асинхронных вариантов методов для БД ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 08:20 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 08:27 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaМСУпропущено... Безграмотная кухарка, async/await запускает задачу в фоновом потоке и при ее завершении выполняет код в основном потоке, в результате чего код выглядит почти как синхронный (включая обработку исключений). Садись, двойка. Mудафаил, ты полный му**к и не стесняешься об этом всем рассказывать. Нет никаких фоновых потоков для async/await, а есть конечный автомат, который создает компилятор. Чмо убогое, двойку тебе ставить не буду, для детсадовцев этого не делают Кухарка, ты тупая курица без грамма серого вещества в черепной коробке, конечный автомат у тебя в унылой физиономии, а не в компиляторе. Иди разбей свой лоб об буквари, async/await создает отдельный поток. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 09:39 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaАлексей КОшибка пропущено... авторMonitoring the IAsyncResult’s WaitHandle (as returned from its AsyncWaitHandle property) has a few implications. First, since the APM pattern is all about asynchrony, most IAsyncResult implementations strive to avoid allocating the WaitHandle, only doing so lazily if it’s actually requested. Thus, by accessing the IAsyncResult’s AsyncWaitHandle property, FromAsync is likely forcing allocation of a WaitHandle (and the associated operating system primitives) that otherwise wouldn’t need to be allocated. Second, the only way to “monitor” a WaitHandle to know when it’s been set is to wait on it, which is a potentially blocking operation. Obviously, FromAsync isn’t going to block the current thread by waiting on this handle (that wouldn’t be very async of it), so instead it relies on the ThreadPool. It could queue a work item to block on the handle, but that would end up burning a ThreadPool thread for each such call. Instead, FromAsync relies on ThreadPool.RegisterWaitForSingleObject, a function that is specifically geared towards using the ThreadPool to more efficiently wait for handles. According to the MSDN documentation, it does so by waiting on multiple handles from a single thread via WaitForMultipleObjects; however, there are a limit to how many handles it can wait on from each thread, so while this will end up burning fewer threads than if we blocked one thread per handle, it’s still far from ideal. async\await не будет ничего блокировать при вызовах асинхронных вариантов методов для БДЧитай внимательнее. Там рядом пример через ContinueWhenAll , без выделения потока на ожидание. Чтобы добиться такого результата необязательно использовать async/await. Достаточно 4-го фреймворка. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 12:43 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУSeVaпропущено... Mудафаил, ты полный му**к и не стесняешься об этом всем рассказывать. Нет никаких фоновых потоков для async/await, а есть конечный автомат, который создает компилятор. Чмо убогое, двойку тебе ставить не буду, для детсадовцев этого не делают Кухарка, ты тупая курица без грамма серого вещества в черепной коробке, конечный автомат у тебя в унылой физиономии, а не в компиляторе. Иди разбей свой лоб об буквари, async/await создает отдельный поток. Вот и Гнидка пожаловала с очередной порцией слизи. Нашел фоновые потоки для тасков? Извратность твоих хаотичных мыслишек в впереди планеты всей. Кроме тебя мало бы кто до этого додумался ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 12:58 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Алексей КSeVaпропущено... пропущено... async\await не будет ничего блокировать при вызовах асинхронных вариантов методов для БДЧитай внимательнее. Там рядом пример через ContinueWhenAll , без выделения потока на ожидание. Чтобы добиться такого результата необязательно использовать async/await. Достаточно 4-го фреймворка. автор FromAsync relies on ThreadPool.RegisterWaitForSingleObject , a function that is specifically geared towards using the ThreadPool to more efficiently wait for handles. According to the MSDN documentation, it does so by waiting on multiple handles from a single thread via WaitForMultipleObjects; however, there are a limit to how many handles it can wait on from each thread, so while this will end up burning fewer threads than if we blocked one thread per handle, it’s still far from ideal. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 13:05 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaМСУпропущено... Кухарка, ты тупая курица без грамма серого вещества в черепной коробке, конечный автомат у тебя в унылой физиономии, а не в компиляторе. Иди разбей свой лоб об буквари, async/await создает отдельный поток. Вот и Гнидка пожаловала с очередной порцией слизи. Нашел фоновые потоки для тасков? Извратность твоих хаотичных мыслишек в впереди планеты всей. Кроме тебя мало бы кто до этого додумался Твоему гнустному умишке с гнилыми потрохами мозгов я подготовил примерчик для первоклашек. Осилишь? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Что скажешь, марамойка, почему я получу разные идентификаторы тредов? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 13:06 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaавтор FromAsync relies on ThreadPool.RegisterWaitForSingleObject , a function that is specifically geared towards using the ThreadPool to more efficiently wait for handles. According to the MSDN documentation, it does so by waiting on multiple handles from a single thread via WaitForMultipleObjects; however, there are a limit to how many handles it can wait on from each thread, so while this will end up burning fewer threads than if we blocked one thread per handle, it’s still far from ideal. Который из них? Их там около десятка. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 13:13 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaГде там ThreadPool.RegisterWaitForSingleObject ? Из рефлектора: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 13:18 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Лёня, задам те вопрос как человеку, недавно вышедшему из отпуска со свежей, как говорится, головой на плечах :) Не кажется ли, что тарахтушка Сева опять обделалась? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 13:26 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
столько поноса в 1 теме из за какой то много-поточности, для которой в dotNet есть 100500 классов, начиная от Thread и заканчивая самыми изощренными... ЗАЧЕМ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 13:29 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУЛёня, задам те вопрос как человеку, недавно вышедшему из отпуска со свежей, как говорится, головой на плечах :) Не кажется ли, что тарахтушка Сева опять обделалась? "Трудно быть вежливым если ты прав" (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 13:30 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Roman Mejtes, если МСУ и SeVa в одном топике пишут, то последний превращается в срач автоматически. Забей ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 13:31 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Алексей КМСУЛёня, задам те вопрос как человеку, недавно вышедшему из отпуска со свежей, как говорится, головой на плечах :) Не кажется ли, что тарахтушка Сева опять обделалась? "Трудно быть вежливым если ты прав" (с) Вежливый ты мой. Ты не там копаешь. Теперь посмотри на TaskFactory.ContinueWhenAll(tasks, tt => /* Готово */) в своем коде. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 14:32 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Сева опять обкакалсяМСУSeVaпропущено... Вот и Гнидка пожаловала с очередной порцией слизи. Нашел фоновые потоки для тасков? Извратность твоих хаотичных мыслишек в впереди планеты всей. Кроме тебя мало бы кто до этого додумался Твоему гнустному умишке с гнилыми потрохами мозгов я подготовил примерчик для первоклашек. Осилишь? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Что скажешь, марамойка, почему я получу разные идентификаторы тредов? SeVa, марамойка ты наша форумная, есть что сказать по поводу "извратности моих хаотичных мыслишек"? Опять опкакалсо, неуч? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 14:48 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУ+ Сева опять обкакалсяМСУпропущено... Твоему гнустному умишке с гнилыми потрохами мозгов я подготовил примерчик для первоклашек. Осилишь? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Что скажешь, марамойка, почему я получу разные идентификаторы тредов? SeVa, марамойка ты наша форумная, есть что сказать по поводу "извратности моих хаотичных мыслишек"? Опять опкакалсо, неуч? :) Глупая, бездумная обезьянка, а что доказывает твой тупой тест ни о чем? Продолжаешь гадить себе на голову? Попроси взрослых написать правильный тест. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 15:11 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaТеперь посмотри на TaskFactory.ContinueWhenAll(tasks, tt => /* Готово */) в своем коде.До этого речь шла про FromAsync . Ты уж определись. А то так и будем весь System.Threading.Task сюда из рефлектора постить. Впрочем - давай. Теперь твоя очередь. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 15:11 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaМСУ++ Сева опять обкакалсяпропущено... SeVa, марамойка ты наша форумная, есть что сказать по поводу "извратности моих хаотичных мыслишек"? Опять опкакалсо, неуч? :) Глупая, бездумная обезьянка, а что доказывает твой тупой тест ни о чем? Продолжаешь гадить себе на голову? Попроси взрослых написать правильный тест. Этот тест в очередной раз доказывает, что ты унылая кодо-кухарка со всяческим отсутствием интеллекта. Заруби себе топором на своем тупорылом мозге, асинк авэйт - это синтаксический сахар, не более того. Очень замороченный в реализации, но таки сахар, который поет свои песни в отдельном потоке, играя на бубенцах мелодичные ритмы для так простофиль и обормотов-двоешников типа тебя. Сегодня опять двойка, вон из класса. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 15:20 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУ асинк авэйт - это синтаксический сахар, не более того. Очень замороченный в реализации, но таки сахар, который поет свои песни в отдельном потоке но люди читают это и видят совершенно другое. автор http://msdn.microsoft.com/ru-ru/magazine/hh456403.aspx асинхронные методы не планируют новые потоки — они позволяют выполнять вычисления в существующих потоках; как тут не получить разрыв шаблона. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 15:42 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
beg-in-erкак тут не получить разрыв шаблона.Достаточно знать про ThreadPool. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 15:51 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Алексей КSeVaТеперь посмотри на TaskFactory.ContinueWhenAll(tasks, tt => /* Готово */) в своем коде.До этого речь шла про FromAsync . Ты уж определись. А то так и будем весь System.Threading.Task сюда из рефлектора постить. Впрочем - давай. Теперь твоя очередь. :-) Реализации FromAsync я и без тебя видел, они были еще в Rx задолго до тасков. Речь идет о том, что async\await - конечный автомат, который не блокирует поток, как это делается в Wait'ax для тасков или Thread'ax. Это совсем новая модель и совсем другое кино. Вот правильный вариант теста, который постил наш дебиленок. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Results Код: c# 1. 2. 3. 4.
Те первый wait в Main блокирующий и выполнение идет в одном потоке, а c await Этого не происходит ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 15:55 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
beg-in-erМСУ асинк авэйт - это синтаксический сахар, не более того. Очень замороченный в реализации, но таки сахар, который поет свои песни в отдельном потоке но люди читают это и видят совершенно другое. автор http://msdn.microsoft.com/ru-ru/magazine/hh456403.aspx асинхронные методы не планируют новые потоки — они позволяют выполнять вычисления в существующих потоках; как тут не получить разрыв шаблона. beg-in-er, не трать время зря, если этому му**ку что-то втемяшилось, то это уже не вышибить. Он любит гадить себе на голову, при этом считает, что выглядит очень красиво и умно ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 15:58 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
beg-in-erкак тут не получить разрыв шаблона. ...Другие контексты планирования являются многопоточными; в частности, стандартный пул потоков представлен одним контекстом планирования. Когда в нем планируется новая работа, она может быть выполнена в любом потоке из пула. Таким образом, асинхронный метод, начавший работать в пуле потоков, там же ее и продолжит, хотя при этом не исключена его «переброска» между разными потоками. ...На практике единой концепции для контекста планирования нет. Грубо говоря, SynchronizationContext потока действует как его контекст планирования. Поэтому, если у потока есть один из SynchronizationContext (существующая концепция, которая может быть реализована пользователем), он и будет использоваться. А если нет, тогда применяется TaskScheduler потока (аналогичная концепция, введенная TPL). Если у него нет ни того, ни другого, будет задействован TaskScheduler по умолчанию — он планирует возобновления в стандартном пуле потоков. Но всё это теория от "менеджера программ в группе Microsoft C# and Visual Basic Language", которому наскоряк набили текст такие двоешники как Сева. Всегда поднимается новый поток, это наглядно иллюстрирует мой код. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:02 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУbeg-in-erкак тут не получить разрыв шаблона. ...Другие контексты планирования являются многопоточными; в частности, стандартный пул потоков представлен одним контекстом планирования. Когда в нем планируется новая работа, она может быть выполнена в любом потоке из пула. Таким образом, асинхронный метод, начавший работать в пуле потоков, там же ее и продолжит, хотя при этом не исключена его «переброска» между разными потоками. ...На практике единой концепции для контекста планирования нет. Грубо говоря, SynchronizationContext потока действует как его контекст планирования. Поэтому, если у потока есть один из SynchronizationContext (существующая концепция, которая может быть реализована пользователем), он и будет использоваться. А если нет, тогда применяется TaskScheduler потока (аналогичная концепция, введенная TPL). Если у него нет ни того, ни другого, будет задействован TaskScheduler по умолчанию — он планирует возобновления в стандартном пуле потоков. Но всё это теория от "менеджера программ в группе Microsoft C# and Visual Basic Language", которому наскоряк набили текст такие двоешники как Сева. Всегда поднимается новый поток, это наглядно иллюстрирует мой код. му**к, это Net 4.0 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:05 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaму**к, это Net 4.0 Дибилоид, async await появился в 4.5, в статье как-раз приводятся примеры: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Опять кухарка обделалась. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:10 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVa это Net 4.0 http://msdn.microsoft.com/ru-ru/magazine/hh456403.aspx ващето это из 13646380 SeVa Ничего особо сложного ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:15 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaРеализации FromAsync я и без тебя видел, они были еще в Rx задолго до тасков. Речь идет о том, что async\await - конечный автомат, который не блокирует поток, как это делается в Wait'ax для тасков или Thread'ax. Это совсем новая модель и совсем другое кино.У нас задача про "запрос в базу". Значит в первую очередь задействован IO Completion Port и его пул потоков (не путать с ThreadPool class). А всё остальное (Task, кодогенерация async/await и т. п) это удобные бантики, мало влияющие на производительность в данном случае. Пусть даже в новой асинхронной модели есть экономия на WaitHandle-ах, но в данном случае это "экономия на спичках". ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:15 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaРечь идет о том, что async\await - конечный автомат, который не блокирует поток, как это делается в Wait'ax для тасков или Thread'ax.И ещё раз, где в примере с ContinueWhenAll блокируется поток?! Зануда... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:19 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
beg-in-erSeVa это Net 4.0 http://msdn.microsoft.com/ru-ru/magazine/hh456403.aspx ващето это из 13646380 SeVa Ничего особо сложного Не обращай внимание на эту придурь :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:19 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Как-то читал про реализацию async/await. Там кодогенерировались Task.ContinueWith. Видимо, с тех пор что-то поменялось... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:21 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
[quot SeVa] Код: sql 1. 2. 3. 4.
а почему FooAfter==10 ??? может быть всё таки разные потоки? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:22 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaResults Код: c# 1. 2. 3. 4.
Те первый wait в Main блокирующий и выполнение идет в одном потоке, а c await Этого не происходит Дуралей, это и говорит о том, что асинхронный await выполнился в другом потоке ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:24 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
beg-in-erа почему FooAfter==10 ??? может быть всё таки разные потоки?МСУэто и говорит о том, что асинхронный await выполнился в другом потоке Неожиданно. А если бы это было WinForms/WPF приложение, поток был бы тот же. Но не повезло. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:28 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVa. Кстати, задача стояла "запустить односременно N асинхронных операций и подписаться на результат их выполнения". Как ты это собрался делать через async/await я не увидел. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:31 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Алексей Кbeg-in-erа почему FooAfter==10 ??? может быть всё таки разные потоки?МСУэто и говорит о том, что асинхронный await выполнился в другом потоке Неожиданно. А если бы это было WinForms/WPF приложение, поток был бы тот же. Но не повезло. В асп.нет этот кодд вообще вешает приложение :) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
асн.нет априори асинхронен. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:34 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Короче, застолбил тему тут: http://codearticles.ru/Home/ArticleView/2135 P.S. Сева, убей себя об эту статью. До тех пор, пока не покажешь мне код с асинком, в котором будут все Thread.CurrentThread.ManagedThreadId одинаковы, ты - тупая обезьяна с наклонностями унылой кухарки. Ну или просто - мрачный феерический талпайоп. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:36 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Rx походу идёт в золотую корзину. Кому он теперь нужен, если поддержка Task вставлена аж в сам язык. Никого не хотел обидеть, просто мыли вслух... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:38 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУВ асп.нет этот кодд вообще вешает приложение :) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
+1 Про Asp.Net не скажу, но в WPF/WinForms вроде как будет мёртвая блокировка. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:41 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Алексей КПро Asp.Net не скажу, но в WPF/WinForms вроде как будет мёртвая блокировка. Ага, точно - тоже проверил на не тру технологиях :) такая же картина. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:45 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУКороче, застолбил тему тут: http://codearticles.ru/Home/ArticleView/2135 P.S. Сева, убей себя об эту статью. До тех пор, пока не покажешь мне код с асинком, в котором будут все Thread.CurrentThread.ManagedThreadId одинаковы, ты - тупая обезьяна с наклонностями унылой кухарки. Ну или просто - мрачный феерический талпайоп. Неугомонное чмо, те6е мало пачканья мозгов народу здесь, так ты еще говносайт завел. О чем может сказать такой дебил как ты? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 17:11 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaМСУКороче, застолбил тему тут: http://codearticles.ru/Home/ArticleView/2135 P.S. Сева, убей себя об эту статью. До тех пор, пока не покажешь мне код с асинком, в котором будут все Thread.CurrentThread.ManagedThreadId одинаковы, ты - тупая обезьяна с наклонностями унылой кухарки. Ну или просто - мрачный феерический талпайоп. Неугомонное чмо, те6е мало пачканья мозгов народу здесь, так ты еще говносайт завел. О чем может сказать такой дебил как ты? Убогая проститутка, тебе не понравилось, как тебя сегодня опустили за "отличные знания" по работе с потоками? Обтекай, дурында. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 17:41 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Алексей КRx походу идёт в золотую корзину. Кому он теперь нужен, если поддержка Task вставлена аж в сам язык. Никого не хотел обидеть, просто мыли вслух... Никуда он не идет, в Rx 2.0 добавлена поддержка async\await и на клиенте - это лучший вариант. Eric LippertAsync/await" is not a replacement for Rx any more than LINQ was a replacement for SQL. You can use LINQ to talk to a SQL back end; you can use task-based asynchrony with Rx to orchestrate work triggered by streams of events. These technologies should enhance each other, not compete. Из вакансии MS Familiarity with functional programming concepts and Reactive Extensions (Rx) is a strong bonus. Новая модель для серверной части. Сейчас делаю нагрузочное тестирование, результаты радуют. Скалируется до 250 виртуальных пользователей(больше нет в моей лицензии) без всяких тормозов ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 18:56 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Алексей КSeVa. Кстати, задача стояла "запустить односременно N асинхронных операций и подписаться на результат их выполнения". Как ты это собрался делать через async/await я не увидел. Как я уже сказал, эта история для сервисов, просто возращаем Task<..> без всяких wait и все. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 18:58 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaАлексей КSeVa. Кстати, задача стояла "запустить одновременно N асинхронных операций и подписаться на результат их выполнения". Как ты это собрался делать через async/await я не увидел. Как я уже сказал, эта история для сервисов, просто возращаем Task<..> без всяких wait и все.Ну вот и я о чём. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 19:23 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Алексей КSeVaпропущено... Как я уже сказал, эта история для сервисов, просто возращаем Task<..> без всяких wait и все.Ну вот и я о чём. :-) Это жесть... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 19:26 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaНовая модель для серверной части. Сейчас делаю нагрузочное тестирование, результаты радуют. Скалируется до 250 виртуальных пользователей(больше нет в моей лицензии) без всяких тормозовВ 4-м этого тоже можно добиться. Может не так удобно, но можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 19:35 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Бл. Не знаю с чего начать. это имхо, имхо может быть ошибочным.. Весь срач возник по поводу что стоит за await, ну естественно что там по всей логике должен стоять таск с вытекающим фоновым, но что это за поток, это возможная и как правило реализация единицы задачи. но можно же взять написать свой класс задачи, без тасков, с реализаций структурыTaskAwaiter , и выкидывания метода наружу GetAwaiter, ибо наличие этого метода определяет может ли это стоять за await. Ну естественно за "стек" этой задачи никуда не упорхнуть тем более и дальше, и эта реализация как пятое колесо телеге ну это моё имхо а не утверждение Но сама концепция этой технологии не определяет что задача должна выполняться в фоновом потоке, а говорит что просто задача.( может что еще придумают), как бы абстракция. В конце концов можно в обыкновенном таске закинуть через SynchronizationContext делегат и он встанет в очередь на исполнение в основном потоке, но тут фишка - что если он зависнет то весь основной накроется медным тазом,синхо Весь сахар состоит в await, в этом месте создается объект за мониторингом задачи, что стоит за await и делегатом куда пойдем если задача исполнится, делегат на код продолжения метода почему делегат чуть позже, после этого код гуляет дальше. как реализована эта фишка - машина слежения, служебные потоки могут быть - их не отрицают создатели, так как это шаманство реализовано через функцию с пометкой async, может сложиться ощущение что все эти прелести создаются на стеке этой функции. Но вроде как нет, при выходе из async F,код может гулять дальше, а объект слежение будет следить за задачей, и в один прекрасный момент он исполниться. С возможностью подарить нам замыкание. все это очень созвучно с запуском begininvoke, код идет дальше, а за слежением endinvoke - создаем отдельный поток. Но если таких задач куча нам придется создавать кучу потоков, хранить где то результаты если результат одной задачи является элементом другой задачи.., следить за контекстами.. Тут и уместна эта технология, все слежение организовано единой машиной и если есть переплетений задач компилятор самследит за очередностью, и даже создает в машине внутренние переменные для выполнения этой цепочки задач, более точнее сказать, создает обертки - типы этих переменных и указатели на их объекты в куче включает в машину слежения, равно и для переменных объявленных в функции. Но по истине шаманство заключается вот в чем. только компилятор встречает в коде await он создает машину слежения, запихивает туда надзиратель за объектом await и все барахло из стека переносит в эту машину в виде делегата продолжения кода функции для продолжения в потоке вызова, и передает управление этой машине, по существу код продолжается за счет машины слежения. Стек метода async уже нам не нужен, и код пошел дальше за счет машины, Предположим что метод async -void, код дальше может переходить в стек новой функции, а машина слежения трансформироваться в таск и запускаться в служебном потоке, и продолжает следить за не выполненными в прошлом задачами.( если они действительно не выполнены), Так как машина слежения это структура и структура аки стек исполнения кода( образно), тут как бы уместны рекомендации, о которых кричат создатели , содержать эту структуру в чистоте, в плане не лепить г..а в виде переменных на объекты в куче в коде функции, ибо при переносе это г..о, ляжет в структуру в виде указателей на объекты и как бы она для уборки становится замороченной по сравнению со стеком функции. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 16:20 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Ниасилил... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 16:36 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУ, дак интересно же, что там в кишках, ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 16:38 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Где-то в степиМСУ, дак интересно же, что там в кишках, Не спорю, но излагаешь ты опасно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 16:40 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУ, ну не опасно, же имхо, а то что резко, так как бы оживит повествование, зы Вот все у вас как на параде, - салфетку - туда, галстук - сюда, да "извините", да "пожалуйста-мерси", а так, чтобы по-настоящему (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 16:51 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Где-то в степиа так, чтобы по-настоящему (с) Ну почему же, иногда и какашками кидаемся. Вон, вчера Севу чмыранули по-полной программе, сейчас сидит в кустах, раны зализывает ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 16:52 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУГде-то в степиМСУ, дак интересно же, что там в кишках, Не спорю, но излагаешь ты опасно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 16:59 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУ, Ну у вас с Севой, это не отнять, это воспринимается уже как должное, хотя прок для тех кто следит за перепалкой абсолютно есть не знаю я воспринимаю это уже спокойно,новичкам наверное дико, мне даже кажется в реале вы бы были неразлучными друзьями. на полном сер.. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 17:00 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Где-то в степив реале вы бы были неразлучными друзьями. на полном сер.. +1 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 17:07 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУ, к стати про кишки, у меня есть друг прозектор , так вот с ним произошла презабавная история, приходят родственники забирать тело горячо любимой бабушки, и застают такую картину, мой друг пыхтит выдирает золотой мост у бабушки пассатижами, и не глядя на них орет, х.. че надо.., дочка бабули - хоп.. не насовсем.. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 17:11 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУГде-то в степиМСУ, дак интересно же, что там в кишках, Не спорю, но излагаешь ты опасно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 18:34 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Где-то в степиТут всё похоже на разворот циклов в конечный автомат в yield return . Если мне не показалось, прошлая реализация "этого" была через обёртывания следующего за await кода в Task.ContinueWith. Видимо не понравилось. Решили добавить ещё одну абстракцию, позволяющую обобщить Task, IObservable и прочие "асинхронности". И сделали через автомат, видимо решили сэкономить на количестве обращений к пулу потоков. А через что будет "продолжение" - зависит от наличия у "первого потока" контекста синхронизации. Если есть - всё пойдёт через него. Если нет - через пул потоков. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 18:48 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
нашел неточность шаманство будет начато если компилятор встретит метод с async даже если это метод пустой ( без await)все равно создаст структуру и запустит код через нее. я не знаю, приживется ли, честно сказать я ей не пользовался никогда. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 19:09 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Алексей К, сов. верно, они и позиционируется ее с этой стороны -(не использует дополнительных ресурсов) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 19:14 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Алексей КГде-то в степиТут всё похоже на разворот циклов в конечный автомат в yield return . Если мне не показалось, прошлая реализация "этого" была через обёртывания следующего за await кода в Task.ContinueWith. Видимо не понравилось. Решили добавить ещё одну абстракцию, позволяющую обобщить Task, IObservable и прочие "асинхронности". И сделали через автомат, видимо решили сэкономить на количестве обращений к пулу потоков. А через что будет "продолжение" - зависит от наличия у "первого потока" контекста синхронизации. Если есть - всё пойдёт через него. Если нет - через пул потоков. Причины нового варианта: - На каждый Task требуется выделение памяти, что приводит к лишней работе сборщика мусора. Это становится критичным при высоких нагрузках - Ожидания обрабатываются отдельным тредом, а Боливар не может выдержать много. По непроверенным данным не больше 64. - Таски, трэды и прочие радости совершенно не нужны, если идет вызовы i/o, которые обрабатываются операционкой. ЗЫ Открою вам еще одну маленькую тайну : стеки не используются, локи не работают, 'продолжения' может не быть вовсе ConfigureAwait(false) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 19:17 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1405470]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
63ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
179ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 300ms |
0 / 0 |