@ru_python

Страница 9332 из 9768
Aragaer
14.06.2019
12:35:41
гонка будет

Denis
14.06.2019
12:35:43
Tishka17
14.06.2019
12:35:56
гонка будет
поэтому на двух

Google
koder
14.06.2019
12:36:05
можно на двух мьютексах
все примитивы синхронизации можно сделать через мютекс

Aragaer
14.06.2019
12:36:07
и как же?

Denis
14.06.2019
12:36:14
Очередь проще делать на семафорах, а семафоры через кондвар

koder
14.06.2019
12:36:43
Через фьютекс
по апи это одно и то же. фютекс просто иногда быстрее

Denis
14.06.2019
12:36:51
Denis
14.06.2019
12:37:44
в чем разница?
Мьютекс защищает критическую секцию, а фьютекс блокируется и ждет пробуждения

Denis
14.06.2019
12:38:02
Если мьютекс захвачен, его может отпустить только тот же поток, который его захватил

koder
14.06.2019
12:38:09
футекс - это fast mutex

Denis
14.06.2019
12:38:24
Глянь man futex

Google
koder
14.06.2019
12:38:36
он сначала делает спин-лок, а если спин лок не срабатывает - уходит в полноценный мютекс

к критической секции это не имеет никакого отношения

Denis
14.06.2019
12:38:57
На нем можно реализовать мьютекс, да

Кондвар тоже можно, а вот кондвар на мьютексе уже нет

koder
14.06.2019
12:39:15
Если мьютекс захвачен, его может отпустить только тот же поток, который его захватил
это не имеет отношения к мютексу, это просто доп апи для надстроек над мютексами

Denis
14.06.2019
12:40:05
это не имеет отношения к мютексу, это просто доп апи для надстроек над мютексами
Покажешь, как эффективный кондвар через мьютекс сделать?

Aragaer
14.06.2019
12:40:42
кондвар делается на мьютексе, но для работы кондвара нужен еще один мьютекс

koder
14.06.2019
12:40:47
Кондвар тоже можно, а вот кондвар на мьютексе уже нет
https://stackoverflow.com/questions/11000725/implementation-of-condition-variables

koder
14.06.2019
12:41:17
https://en.wikipedia.org/wiki/Futex

а семафор нельзя сделать через мютекс?

семафор это мютекс и счетчик

Denis
14.06.2019
12:41:44
Ну покажи, как его через мьютекс сделать

koder
14.06.2019
12:41:59
ты серьезно? мне все погуглить за тебя?

Denis
14.06.2019
12:42:11
Да, погугли, пожалуйста

Aragaer
14.06.2019
12:42:11
семафор на одном мьютексе опять же не делается

koder
14.06.2019
12:42:12
вот тебе сверху описание того, что такое futex

Aragaer
14.06.2019
12:42:21
ну или счетчик атомарный

koder
14.06.2019
12:42:22
это спинлок+мютекс

Denis
14.06.2019
12:42:44
Я не про устройство фьютекса спрашиваю

Google
Aragaer
14.06.2019
12:42:46
а впрочем я не знаю

Denis
14.06.2019
12:43:03
А про то, как сделать семафор только на мьютексах

Alex
14.06.2019
12:43:40
Denis
14.06.2019
12:43:45
Хотя бы псевдо

koder
14.06.2019
12:46:40
захватываешь блокировку, смотришь на значение счетчика, если с ним все ок - меняешься его (вверх или вниз, в зависимости от операции), если уменьшил - смотришь на счетчик ожидающих. Если он не ноль - анлокаешь второй мютекс. Освобождаешь основной мютекс. Если захватить не удалось - увеличиваешь счетчик ожидаюзиз и захватываешь (возможно два раза) второй мютекс и висишь на нем

koder
14.06.2019
12:48:17
Анлокать мьютекс, который захватил не ты, это UB
эээээ? это в каким апи? в питоне и посиксе это совершнно законно

Alex
14.06.2019
12:48:21
Denis
14.06.2019
12:49:23
https://linux.die.net/man/3/pthread_mutex_unlock If a thread attempts to unlock a mutex that it has not locked or a mutex which is unlocked, undefined behavior results.

koder
14.06.2019
12:52:19
это какие-то быстрые посиксовые локи - PTHREAD_MUTEX_DEFAULT. Стандартные линуксовые можно и локать два раза и анлокать откуда угодно

вот futex https://eli.thegreenplace.net/2018/basics-of-futexes/

atomic + спинлок + mutex

Denis
14.06.2019
12:55:19
Это futex, а не mutex

У него семантика другая

И питоновские локи таки сделаны на семафорах https://github.com/python/cpython/blob/d0eeb936d8daf05d7d89f6935e3f4c0dee49c5be/Python/thread_pthread.h#L422

Iliya
14.06.2019
12:59:06
а в чем проблема? графана умеет делать любые запросы в инфлюкс
Разобрался, просто логически прикинул Select с импользование OR и там надо было найти функцию суммы value

Denis
14.06.2019
12:59:50
Всем привет, кто может подсказать, ставлю тулзу ей нужно подключение к mysql Я установил кучу разных пакетов для этого, но ничто не помогает rpm -qa | grep MySQL MySQL-python-1.2.5-1.el7.x86_64 python2-PyMySQL-0.9.2-2.el7.noarch python27-MySQL-python-1.2.3-11.el7.x86_64 pip list | grep mysql mysql-connector-python 8.0.16 Использую python 2.7 и CentOS 7 Ошибка: https://pastebin.com/mnAjKip0

koder
14.06.2019
13:01:20
И питоновские локи таки сделаны на семафорах https://github.com/python/cpython/blob/d0eeb936d8daf05d7d89f6935e3f4c0dee49c5be/Python/thread_pthread.h#L422
еще раз - все примитивы сонхронизации можно сделать на мютексах. Семафоры над ними расширители апи, значит все можно сделать, при желании, и на семафорах. Но мы не обсуждали на чем оно конкретно сделанно - мы обсуждали как его можно сделать. Питоновский кондишенал можно сделать на питоновских мютексах. По поводу футекс - ты говорил, что это совсем не мютекс, у него другое апи. Это совершенно неверно. Вверху ссылка. Футекс имеет то же самое апи что и мютекс (имена функций ессно другие), только иногда он быстрее

Google
Denis
14.06.2019
13:03:47
Denis
14.06.2019
13:06:20
Эффективностью я тут называю отсутствие бесконечного спинвейта

С ним, конечно, в юзерспейсе все можно сделать

Irina
14.06.2019
13:34:41
#работа #москва #удаленка Выбрать оптимальный микрокомпьютер и написать на него софт на Python/С Оплата обсуждаема Нужен СТО в команду Kidsy (https://kidsy.tech), который сможет подобрать микрокомпьютер для реализации всех нужных нам функций в игрушке. Потом придумать, как все будет взаимодействовать на уровне софта И написать софт на микрокомпьютер (это может быть софт под Unix ядро или Unix ядро с софтом на уровне ядра или просто Linux скрипты или BareMetal или ещё что-то, нужно обсуждать) Кого заинтресует, здесь более подробное описание: https://docs.google.com/document/d/1gq0MM-VFiRfBGux8qLIJBkGEw6fCWzlW_Z03ZJIJ9ng/edit

Sergey
14.06.2019
13:38:13
Товарищи, направьте пожалуйста на правильный путь. Есть сервис с кучей задач, всё это управляется через cron (сами задачи - management-комманды Django). Чем дальше, тем сложнее и неуклюжей становится система. Понял что нужно делать через Celery, но встал вопрос выбора брокера - по факту выбираю между Reddis и RabbitMQ. Пытаюсь по обзорам понять разницу и выбрать, но уверенности нет. Судя по всему нужно брать RabbitMQ, т.к. возможности намного шире. Но есть опасение что он куда сложнее в настройке. Подскажите, какой вариант потимальный? От чего должен зависеть выбор?

koder
14.06.2019
13:40:27
<капитан мод>reddis и rabit довольно сильно отличаются по АПИ. Запише требования к мессежденгу, которые у вас есть и сравните с возможностами обоих </капитан мод>

Sergey
14.06.2019
13:41:10
Различаются по сложности или просто по разному организованы?

Tishka17
14.06.2019
13:41:46
на редисе лучше делать очередь заданий, которые можно потом если что перегенерировать

Denis
14.06.2019
13:41:59
Комрады, а есть какой-то тул для проверки валидности docstring? Что описанные аргументы на самом деле обьвлены у функции например?

Sergey
14.06.2019
13:43:14
на редисе лучше делать очередь заданий, которые можно потом если что перегенерировать
И он проще рэббита? А зачем тогда вообще рэббит? Для каких-о других задач?

Tishka17
14.06.2019
13:43:32
в смысле, редис бери если меньше требования к надежности

Sergey
14.06.2019
13:45:00
ок, понял, спасибо

Tishka17
14.06.2019
13:45:37
я бы взял реббит

очрееди на редисе - это все таки не очень стандартное применение его

Sergey
14.06.2019
13:47:09
Блин, похоже я с начала не так понял. Т.е. для брокера лучше реббит? Это не будет overkill?

Tishka17
14.06.2019
13:48:04
overkill - это если бы кафку взял

Sergey
14.06.2019
13:48:20
были такие мысли поначалу))

Tishka17
14.06.2019
13:50:01
выглядит как будто реббит ставить ну очень просто

Google
Pavel
14.06.2019
13:50:42
Блин, похоже я с начала не так понял. Т.е. для брокера лучше реббит? Это не будет overkill?
https://en.wikipedia.org/wiki/Category:Message-oriented_middleware выбирай. хотя это далеко не полный список

не хочешь rabbitmq - можешь посмотреть на crossbar.io (WAMP)

Sergey
14.06.2019
13:51:39
Не, дело не в том, что не хочу

У меня опыта в этом вопросе ровно 0, пытаюсь понять что мне нужно.

Pavel
14.06.2019
13:52:17
в общем, софта такого очень много. просто RabbitMQ(AMQP) долгое время был "решением по умолчанию", хотя сейчас постепенно теряет позиции

из твоих сообщений вообще говоря не очень понятно, какие у тебя критерии выбора

Pavel
14.06.2019
13:55:32
Так в том и проблема, что я не знаю из чего исходить, выбирая брокера.
хм. а как тогда ты вообще пришёл к мысли о том, что он тебе нужен?

Sergey
14.06.2019
13:57:00
хм. а как тогда ты вообще пришёл к мысли о том, что он тебе нужен?
Понял что Cron не устраивает, т.е. нужен celery, начал читать про celery, везде пишут что нужен брокер. В половине гайдов - рэббит, в половине - редис. И встал вопрос

Tishka17
14.06.2019
13:57:26
Вообще, крон - это выполнение по расписание. А брокеры сообщений - это доставка событий

Pavel
14.06.2019
13:57:34
я что-то не очень понял, как ты от крона к сельдерею (не к ночи будь помянут) пришёл?

ты видимо гуглил что то в духе "taskrunner"?

Sergey
14.06.2019
13:58:01
Вообще, крон - это выполнение по расписание. А брокеры сообщений - это доставка событий
Ну да, это я понимаю. Крон я меняю на сельдерей, вопрос что с ним в пару брать.

Pavel
14.06.2019
13:58:21
если ты берёшь сельдерей, то бери редис

Страница 9332 из 9768