|
как обнулить ячеку вектора (не удаляя)?
|
|||
---|---|---|---|
#18+
Хотя дырки можно класть в конец массива и брать только с конца массива. Если нам не важна последовательность в результирующем массиве. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 15:02 |
|
как обнулить ячеку вектора (не удаляя)?
|
|||
---|---|---|---|
#18+
petravКстати, если массив дырок и дырок много, то потребуется уже смещать влево массив дырок. Массив дырок может быть, например, очередью. Или стэком. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 15:03 |
|
как обнулить ячеку вектора (не удаляя)?
|
|||
---|---|---|---|
#18+
petrav, У него было волшебное слово "место" в массиве.Это он индекс наверно))) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 15:04 |
|
как обнулить ячеку вектора (не удаляя)?
|
|||
---|---|---|---|
#18+
petrav Хотя дырки можно класть в конец массива и брать только с конца массива. Если нам не важна последовательность в результирующем массиве. Да. У него получается кольцевой буфер. Но это все настолько сильно изменяет первую постановку что можно просто выкидывать старые оптимизации и наново проектировать новую задачу. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 15:07 |
|
как обнулить ячеку вектора (не удаляя)?
|
|||
---|---|---|---|
#18+
mayton, Можно проще. Поток на вектор с дырками и поток на вектор без дырок. Два вектора он сам предложил. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 15:12 |
|
как обнулить ячеку вектора (не удаляя)?
|
|||
---|---|---|---|
#18+
petrav Но это снова потребует блокировки всего массива вместе с массивом дырок, а не на уровне отдельных ячеек. Кстати, если массив дырок и дырок много, то потребуется уже смещать влево массив дырок. Если для этого массива дырок сделать отдельный мутекс, то все можно будет делать. petrav А аффтар этага ни хател. Он про другие массивы не хотел, а про этот даже не подумал. mayton его этим моментом обрадовал )) ТС похоже даже в теории не представляет как писать для многопоточности. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 15:12 |
|
как обнулить ячеку вектора (не удаляя)?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Можно проще. Поток на вектор с дырками и поток на вектор без дырок. Два вектора он сам предложил. нельзя. Они в одном потоке должны быть. Точнее дырки сами по себе, а потокИ к ним обращаются. Нельзя их в какой-то поток пихать. Dima T Он про другие массивы не хотел, а про этот даже не подумал. stack в принципе решает эту проблему ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 15:21 |
|
как обнулить ячеку вектора (не удаляя)?
|
|||
---|---|---|---|
#18+
бабушкин зайчик Dima T Он про другие массивы не хотел, а про этот даже не подумал. stack в принципе решает эту проблему stack тоже нельзя с нескольких потоков одновременно пользовать. queue тоже. Все классы-контейнеры из std непотокобезопасные, поэтому при многопоточной работе с ними надо дополнительно прописывать синхронизацию доступа. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 15:25 |
|
как обнулить ячеку вектора (не удаляя)?
|
|||
---|---|---|---|
#18+
Автору нужно написать прототип класса. Где будет два закрытых массива: значения и дырки. Описать сигнатуру методов и требования к этим методам в плане потокобезопасности. Тогда можно предметно говорить как реализовывать этот класс. Иначе толку не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 15:29 |
|
как обнулить ячеку вектора (не удаляя)?
|
|||
---|---|---|---|
#18+
так, а что если при каждой записи создавать очередь? чаще то будет чтение идти, запись так то сильно пореже но чтобы совсем исключить шанс data race, что если эту попытку записи класть в очередь как-то (я не знаю как ф-ю покласть в очередь - можно ли?) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 15:37 |
|
как обнулить ячеку вектора (не удаляя)?
|
|||
---|---|---|---|
#18+
бабушкин зайчик, Еще немного и врубишься что потокам надо создавать или нарезать задачи. А не наоборот, городить потоки возле одной кастрюли ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 15:45 |
|
как обнулить ячеку вектора (не удаляя)?
|
|||
---|---|---|---|
#18+
бабушкин зайчик так, а что если при каждой записи создавать очередь? Как ты себе это представляешь? Покажи как в коде это будет выглядеть. Чего ты так мутексов испугался? Они быстро работают, а без них многопоточная работа невозможна. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 15:48 |
|
как обнулить ячеку вектора (не удаляя)?
|
|||
---|---|---|---|
#18+
Dima T, По правде говоря, без блокировок тоже можно работать. В веб даже рекомендуется. Из двух зол выбрали меньшее.) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 15:51 |
|
как обнулить ячеку вектора (не удаляя)?
|
|||
---|---|---|---|
#18+
Dima T, Правда это для для java. Но суть что код надо подстраивать под параллелизм. Ибо компромиссы! авторКомпромиссы Стратегия высокого параллелизма реагирует на требования высокого параллелизма снижением охвата транзакции до уровня, минимально возможного в данной архитектуре. Это приводит к более быстрому завершению (фиксации или откату) транзакции, чем при использовании стратегии слоя API. Однако, как учит нас история хорошего корабля Vasa (см. Ресурсы), вы не можете иметь все и сразу. Жизнь состоит из компромиссов, и обработка транзакций – не исключение. Не можете же вы впрямь рассчитывать одновременно и на такой же уровень надежности обработки транзакций, что и в стратегии слоя API, и на максимальное количество параллельных обращений и максимальную пропускную способность при пиковых нагрузках. http://www.k-press.ru/cs/2009/3/ts/ts.asp ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 16:03 |
|
как обнулить ячеку вектора (не удаляя)?
|
|||
---|---|---|---|
#18+
Dima T Как ты себе это представляешь? Покажи как в коде это будет выглядеть. это я у общественности спрашиваю - как Dima T Чего ты так мутексов испугался? Они быстро работают, а без них многопоточная работа невозможна. да не испугался, а не вижу смысла, если вектор висит особняком, а потоки лочить, то какой толк от мутексов? есть толк от них? Залочил поток и другой тоже залочил, так они же всё равно в одну ячейку смогут записать, потому что она то НЕ залочена... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 16:04 |
|
как обнулить ячеку вектора (не удаляя)?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp По правде говоря, без блокировок тоже можно работать. В веб даже рекомендуется. В вэб-сервере каждый поток сам по себе работает и нет никаких данных разделяемых между разными потоками, нечего блокировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 16:05 |
|
как обнулить ячеку вектора (не удаляя)?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Dima T, По правде говоря, без блокировок тоже можно работать. В веб даже рекомендуется. Из двух зол выбрали меньшее.) Ну... чисто технически Оракл тоже использует блокировки. На очень короткое время и не для транзакций а для поддержания консистентности db_blocks (это такие 8К кусочки памяти) в области buffer_pull когда конкурирующие SQL-процессы пишут и читают один и тот-же блок. Как разрабатывать ПО вообще без блокировок - ХЗ. Есть для этого технология Акторов. Но у нее есть свои проблемы. И свои сложности дизайна. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 16:09 |
|
как обнулить ячеку вектора (не удаляя)?
|
|||
---|---|---|---|
#18+
бабушкин зайчик Dima T Как ты себе это представляешь? Покажи как в коде это будет выглядеть. это я у общественности спрашиваю - как Dima T Чего ты так мутексов испугался? Они быстро работают, а без них многопоточная работа невозможна. да не испугался, а не вижу смысла, если вектор висит особняком, а потоки лочить, то какой толк от мутексов? есть толк от них? Залочил поток и другой тоже залочил, так они же всё равно в одну ячейку смогут записать, потому что она то НЕ залочена... Каша у тебя в голове, не понимаешь как блокировки работают. Нельзя залочить ячейку, нет такой операции "залочить ячейку". Я ссылки давал выше 22304501 , почитал? Почитай хотя бы статью на хабре. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 16:11 |
|
как обнулить ячеку вектора (не удаляя)?
|
|||
---|---|---|---|
#18+
Dima T, В веб потоки тоже ресурс. И очень даже дорогой. У веб сервера их 10 штук примерно. А юзверей пусть пол лимона. ТС похоже свой сервер пишет))))) Где ище миллион вектор? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 16:11 |
|
как обнулить ячеку вектора (не удаляя)?
|
|||
---|---|---|---|
#18+
mayton, Я же не о технических говорил. Нельзя узко про одни блоки вещать. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 16:14 |
|
как обнулить ячеку вектора (не удаляя)?
|
|||
---|---|---|---|
#18+
Ты пишешь дескыть Оракл не использует блокировки. Я уточняю что в понимании ОС он их еще как использует. Просто на уровне транзакций - другой подход. И другие блокировки. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 16:15 |
|
как обнулить ячеку вектора (не удаляя)?
|
|||
---|---|---|---|
#18+
Dima T, Вообще, в веб параллельный доступ осуществляет субд.. Почему автор решил субд заново изобрести не знаю ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 16:16 |
|
как обнулить ячеку вектора (не удаляя)?
|
|||
---|---|---|---|
#18+
mayton Ты пишешь дескыть Оракл не использует блокировки. Я уточняю что в понимании ОС он их еще как использует. Просто на уровне транзакций - другой подход. И другие блокировки. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 16:17 |
|
как обнулить ячеку вектора (не удаляя)?
|
|||
---|---|---|---|
#18+
Dima T Я ссылки давал выше 22304501 , почитал? Почитай хотя бы статью на хабре. обязательно прочитаю, но позже. Так я и написал, что не залочится. Это то я понимаю. Я не понимаю, зачем мне мутекс в таком случае... Надеюсь хабр даст ответ. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 16:18 |
|
|
start [/forum/topic.php?fid=57&msg=40059896&tid=2017237]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 285ms |
total: | 440ms |
0 / 0 |