170 похожих чатов

Ребят, вам бы хватило возможности шарить память между 127 потоками?

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

17 ответов

14 просмотров

Не понял какая связь между вопросом и вторым предложением, а так же откуда ограничение в 127 Если что, возможности шарить память мне бы не хватило, ещё нужны семафоры и/или мьютексы

Артем- Автор вопроса
Алексей Попов
Не понял какая связь между вопросом и вторым предл...

Да, ограничение вокруг мьютекса и крутится. Т.е. максимальное количество обращений из разных потоков будет числом, которое помещается в без знаковое 8-битное число, т.е. 127, где 0 — лок потока.

Артем- Автор вопроса
Алексей Попов
А почему 8-ми битное?

Решил самое маленькое из доступного взять, чтоб сократить время (и издержки) от создания мьютекса. Но подумал, хватит ли его. (вроде с запасом, но я может не встречал такие требования)

Артем
Решил самое маленькое из доступного взять, чтоб со...

Ты же понимаешь что на уровне процессора всё равно идёт манипуляция числом в 64 разряда (ну или какая у тебя там архитектура, вряд ли условный z80)?

Артем- Автор вопроса
Алексей Попов
Ты же понимаешь что на уровне процессора всё равно...

Мы меняем значение элемента типизированного массива, так что не должно быть

Артем
Мы меняем значение элемента типизированного массив...

И как это выглядит? Ты думаешь в регистры будут загружаться сразу несколько последовательных элементов массива, чтобы произвести операцию над одним из них?

Артем- Автор вопроса
Алексей Попов
И как это выглядит? Ты думаешь в регистры будут за...

Не уверен, просто надеюсь что движок поймет, что я обращаюсь к типизированному массиву, с длиной 1, и меня только одно значение. В теории он может оптимизировать этот кусок, в запись числа с определенной разрядностью, но хз

Мне бы хватило. Тут только пробовать, мне кажется для демагогии нужно смотреть реализацию атомиков в ноде, потому что иначе это просто разговоры.

Артем- Автор вопроса
Сергей Пограничный
Мне бы хватило. Тут только пробовать, мне кажется ...

Надеюсь до вечера альфа-версию своей либы смогу в чат закинуть. Я вчера рассказывал как она работает, по сути просто обертка, которая позволяет чуть удобнее работать с потоками и шарить данные. (Это нужно для двух целей — совместное использование между потоками и передача результата без издержек на копирование.) Сейчас прикручиваю атомики и мьютекс и начну функционал допиливать, а то пока маловато возможностей. (Работать уже можно, но хотелось бы дать больше контроля)

Артем
Надеюсь до вечера альфа-версию своей либы смогу в ...

Да, не помню делал ли кто-то кроме команды Тимура обертки нормальные вокруг атомиков и шаренной памяти - будет хорошо, ждем, тегните пожалуйста.

Что-то типа такого делаешь? https://github.com/metarhia/noroutine

Артем- Автор вопроса
Alexander
Что-то типа такого делаешь? https://github.com/me...

Не, это скорее просто способ запустить что-то в разных потоках, у меня чутка иная концепция. Ты конфигурируешь группы потоков, т.е. говоришь что этот поток называется вот так, имеет, или не имеет расшаренную память, а этот другой поток, с таким то именем и он обладает либо своей памятью, или имеет общую память с другим потоком. Была задача просто, нужно было разнести схожую работу в разные потоки, но не на каждое обращение (там до 15000 может легко дойти, скорее всего больше), а именно по группам (по логике обращения, т.е. какие данные им нужны) и внутри уже кешировать всё и прочее. Начал писать и понял что можно отдельную либу сделать, чтоб не только в этом проекте мертвым грузом лежала, а чтоб кто-то мог взять за основу и сделать что-то хорошее.

Артем- Автор вопроса
Сергей Пограничный
Да, не помню делал ли кто-то кроме команды Тимура ...

В общем накидал вроде, голова уже не варит, на доку не хватило сил, нужно убегать по делам. https://github.com/LimitR/ad-worker Можно протестить и всю критику пулреквестами отправлять)) Ребят, пожалуйста, не цепляйтесь к ошибкам в названиях, или комментариях, это всё мелочи и исправлю. Мне главное понять, чего не хватает по функционалу, чтоб прикрутить. Сегодня вряд ли своей головой допру. (Скорее всего есть проблемы атомиками, проверьте)

Он усложняет код и отладку в разы: лолк/анлок/синхронизация/рейскондишены и тд

Артем- Автор вопроса
Aleksey Kozin
Он усложняет код и отладку в разы: лолк/анлок/синх...

Это только если ты шариш память. Можно не шарить память и проблем не будет. (Просто лови сообщение, или добавляй в шариную память между одним потоком, когда придет уведомление)

Aleksey Kozin
Он усложняет код и отладку в разы: лолк/анлок/синх...

Рейскондишны и без многопоточности есть :-/ Вынесение в отдельный процесс или поток бывает нужно, кейсов много может быть же. Начиная от вычислений, заканчивая отдельными процессами для каких-то бизнес процессов

Похожие вопросы

Обсуждают сегодня

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
а как ловят такое ghci> res <- getPos2 urlt 0 (alist !! 0) 200 ghci> res SearchAtom (Search "www.google.com" "/search?q=" "Haskell") "haskell.org" (SearchTS [(2024-05-06 07:...
Fedor
14
Ребята, а из API геокодеров (по адресам в РФ) что сейчас актуального и есть ли среди актуального бесплатное/с нормаотным лимитом запросов? ситуация простая - на сайте периоди...
Dreamer_0x01 VeseloV
8
Добрый день, а есть ли возможность завернуть уже зашифрованный пасс в креденшл, в интернете натыкаюсь только на создание пары и ее шифровки, но тогда все равно нужно расшифров...
SSS
1
короче сгенерила мне эта штука код на ассемблере: struc string val { common local .value dq .value .value: if ~val eq db val end if db 0 } fo...
Vi Chapmann Chapmann
12
Всем привет! Массив вводится с клавиатуры, кол-во элементов неизвестно, поэтому я указал arr db 100 dup(?) С нахождением максимума проблем нет, а вот минимум почему-то всегд...
En Vind Av Sorg
11
Есть тут те у кого дети есть + 2 работы + в зал ходят + в семейной жизни все хорошо?
Abdul-Aziz M.
13
Карта сайта