LINUX.ORG.RU
ФорумTalks

И смех, и грех

 


1

3

Посмотрите, к чему приводит вера в авторитет преподавателя: https://toster.ru/q/267058

Человек уверен, что если препод сказал так, то иначе и быть не может... То, что преподаватель — лопух, а аппаратуры при нем нет, может проверить любой.

☆☆☆☆☆

Ответ на: комментарий от Eddy_Em

Ты можешь гарантироавть что в этом коде:

    if(!pthread_mutex_trylock(&writer)){
      if(!pthread_mutex_trylock(&queue)){
        printf("Parent wrote this string\n");
        ++global_ctr;
      }
      pthread_mutex_unlock(&writer);
    }
оптимизатор не приведет к такому коду, что CPU(с конвейером) не разблокирует writer'а раньше, чем выведет текст?

invy ★★★★★
()
Ответ на: комментарий от snaf

Ну банки всякие, сотовые компании. Газпромы и прочее. Правда по факту они чисто бумажкомаратели. Но есть и полезные (те что картами заняты например).

dmxrand
()
Ответ на: комментарий от i-rinat

Могу ошибиться, но мьютекс это дешевый семафор. И еще тоже могу ошибиться он разве не для одного процесса только? Я просто они появились с появлением нитей. Семафор контролирует ядро, а при работе с мьютексом вроде контекст не переключался.

dmxrand
()
Ответ на: комментарий от dmxrand

Семафоры и мьютексы - исключительно абстрактная концепция ничего общего с имплементацией не имеют. В венде я могу и семафоры и мьютексы испоьзовать как между потоками, там и между процессами. (Те, которые в win32).

invy ★★★★★
()
Последнее исправление: invy (всего исправлений: 1)
Ответ на: комментарий от dmxrand

Насколько я знаю, и для семафоров и для pthread mutex в glibc есть быстрые пути, которые в ядро не ныряют.

i-rinat ★★★★★
()
Ответ на: комментарий от invy

Да но в затертых 90-х я про мьютексы кажысь не слышал. Услышал только при появлении мультитрединга. Могу ошибаться. Я тут заинтересовался беседой как раз чтоб припомнить.

dmxrand
()
Ответ на: комментарий от Eddy_Em

И это вся гарантия? Т.е. если завтра ему вставят мозг получше и он увидит: 1) ага, mutex залочить нелзья, значит мне не надо соблюдать строгий порядок операций, обращение к &mutex внутри if нету, то я могу смело вызвать unlock сразу после if(!try_lock())
2) вставят еще больше мозгов и он режит: ага, т.е. ты не имеешь права делать unlock, если ты не получил mutex, значит мы выдадим warning и выкинем к чертям собачьим этот unlock

Результат: код поломался.

Почитай Александреску про Double-Checked Singleton. (Это конечно ничего общего кроме «многопоточности» с этим случаем не имеет, но тем не менее). Там забавные примеры войны с компилятором.

invy ★★★★★
()
Последнее исправление: invy (всего исправлений: 1)
Ответ на: комментарий от Eddy_Em

Я на такое ни разу не натыкался, иначе знал бы о подобных выкрутасах! А вообще, обычно volatile хватает. Ну и внимательно нужно при работе с openMP за аргументами смотреть. Хотя, вовсю юзаю openMP, полет нормальный. Думал эти фильтры на CUDA еще реализовать, но пока как-то несерьезно: в подавляющем большинстве случаев перенос данных из памяти в память и обратно займет дофигища времени.

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

А вообще, обычно volatile хватает

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

invy ★★★★★
()
Последнее исправление: invy (всего исправлений: 1)
Ответ на: комментарий от beastie

Где моя печенька? Я выполнил условия задачи <по примитивам синхронизации> — доказательство опровеждением на примере. :D

А все, теперь никаких печенек до следующего года.

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)
Ответ на: комментарий от dmxrand

Ну банки всякие

как то один чувак рассказывал что банки редко держут классных специалистов у себя. Чаще всего это аутсорс.

сотовые компании

А это уже поинтереснее.

бумажкомаратели

ужас(

Но есть и полезные (те что картами заняты например).

эээ.... о чем речь?

snaf ★★★★★
()
Ответ на: комментарий от Eddy_Em

Мьютекс — это глобальная переменная. И ему насрать, в какой точке ты его заблокируешь, а в какой разблокируешь!

А re-enterable mutex-у тоже насрать, в каком потоке его будут разблокировать?

qrck ★★
()
Ответ на: комментарий от hibou

У нас же Королев начал все с нуля.

... 10 декабря 1948 года с пусковой установки на полигоне Капустин Яр успешно стартовала и, пролетев около 300 км, попала в заданную цель баллистическая жидкостная ракета дальнего действия Р-1 (модификация ракеты «Фау-2»), созданная под руководством С. П. Королёва, а вскоре в ОКБ-1 был разработан вариант ракеты Р-1, специально предназначенный для запуска по вертикальной траектории для геофизических исследований и получивший обозначение В-1А. Стартовая масса ракеты составляла около 14 т, высота подъема — до 100 км[4] ...

qrck ★★
()
Ответ на: комментарий от qrck

Возможно, они нужны. Мне - нет.

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от qrck

Я вам больше скажу, перекись водорода, впервые использованная для турбонасосного агрегата Фау-2, до сих пор используется в двигателях РД-107 и РД-108. Так что наследие немцев живёт и работает!

tiinn ★★★★★
()
Ответ на: комментарий от ilovewindows

В науке нормально стоять на плечах гигантов, в образовании желательно делать миниоткрытия каждый день, желательно опровергая гигантов.
И не путаем интернациональную научную практику и разные системы образования. Ясно что в СССР массовое образование было лучше.

record ★★★★★
()
Последнее исправление: record (всего исправлений: 3)
Ответ на: комментарий от dmxrand

Дай контекст. А то договоришься, что у тебя MTA отправитель. А вообще,именно поэтому ненавижу лекции и учебники на русском.

Shadow ★★★★★
()
Ответ на: комментарий от dmxrand

Препод читал по безопасности, студент превратил в семинар по логике. Цирк.

Shadow ★★★★★
()
Ответ на: комментарий от dmxrand

Раньше появилось. На той же википедии ссылки на книги 86-го года.

invy ★★★★★
()
Ответ на: комментарий от Shadow

Я ничего не говорю. Мы изучали ЧТО такое цифровая подпись. Про МТА небыло ничего. Изучали симметричные и не симметричные ключи и прочее.

Преподаватель диктует определение - цифровая подпись удостоверяет ОТПРАВИТЕЛЯ сообщения.

dmxrand
()
Ответ на: комментарий от invy

Почитай Александреску про Double-Checked Singleton. (Это конечно ничего общего кроме «многопоточности» с этим случаем не имеет, но тем не менее). Там забавные примеры войны с компилятором.

кстати, когда проектировали Джаву, в которой double-checked locking не работает, создатели просто написали, что оно ненужно:

There exist a number of common but dubious coding idioms, such as the double-checked locking idiom, that are proposed to allow threads to communicate without synchronization. Almost all such idioms are invalid under the existing semantics, and are expected to remain invalid under the proposed semantics.

stevejobs ★★★★☆
()
Ответ на: комментарий от Eddy_Em

Ты и в шейдеры не можешь :) Юзкейс где нужно из чужого потока разблокировать занятый другим мьютекс — это какой-то тотальный «мисконсепшон» мьютекса. Если тебе не нужно, чтоб поток ждал на мьютексе — ну так не пользуйся мьютексами. А так — RAII в плюсах и придумано, чтоб ты не выделывался с ручными анлоками через дырки в архитектуре, позволяющие тебе выстрелить в ногу или тормозить в повороте.

slackwarrior ★★★★★
()
Ответ на: комментарий от invy

много разработчиков хачат jvm под конкретные комбинации процессора, компилятора и ос, автоматически (хитрыми тулзами) и вручную (глазами) вычитывая все частные случаи и машинный код, чтобы на поддерживаемых платформах выполнялись например требования java memory model.

на плохо поддерживаемых комбинациях процессор/ос/тулчейн могут быть все виды цирка с конями. Например, Java 8 под OSX все еще переполнена багами. Если пустить под Java8 такую безобидную прогу как IntelliJ IDEA, jvm будет время от времени падать с оправданиями «ой, я нешможло, вот по этому адресу ерунда, прощай жестокий мир». А если пускать под Java от самой Apple (которая только Java 6, потом они отказались ее поддерживать), такого не будет.

stevejobs ★★★★☆
()
Последнее исправление: stevejobs (всего исправлений: 2)
Ответ на: комментарий от Eddy_Em

Дадад, сорта БДСМ — мсье разбирается :) Использовать микроскопы не по назначению не привыкать :)

slackwarrior ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.