Здравствуйте, mgu, Вы писали:
mgu>4. Какие вы знаете объекты синхронизации в местах общего пользования? mgu>5. Что может произойти в туалете при отсутствии объектов синхронизации?
mgu>Ответы
mgu>4. Задвижка, щеколда и т. п.. В худшем случае остаётся мониторить. mgu>5. Deadlock: из кабинки не выйти, и в кабинку не войти.
Много буков, кое-как осилил. Но одно так и не понял, почему именно deadlock а не race condition?
Здравствуйте, ksandro, Вы писали:
mgu>>5. Deadlock: из кабинки не выйти, и в кабинку не войти.
K>Много буков, кое-как осилил.
Это много??? Неужели ваше чтение по программной части ограничивается "билетиками"?
K>Но одно так и не понял, почему именно deadlock а не race condition?
В последнем случае 2+ актора пытаются завладеть одним и тем же ресурсом. А при мёртвом замке один из участников не может освободить ресурс из-за другого.
Здравствуйте, mgu, Вы писали:
S>>Вопрос был не про бабосы, но, видимо, вся польза состоит в поимении чести от публикаций на RSDN.
mgu>Переходя на личности: но вы же тоже сюда пишете и явно не за деньги.
Ну вот, вы опять про деньги. А ведь речь шла о том, что время, потраченное на стенания о невозможности найти работу мечты, можно употребить с большей пользой, не обязательно финансовой. Но, видимо, цель именно в публикации очередного фельетона: вы выговорились и вам стало легче.
Здравствуйте, mgu, Вы писали:
K>>Но одно так и не понял, почему именно deadlock а не race condition?
mgu>В последнем случае 2+ актора пытаются завладеть одним и тем же ресурсом. А при мёртвом замке один из участников не может освободить ресурс из-за другого.
Вы не пройдете собеседование. Ваш вопрос про отсутствие замка, а не про сломанный замок. В этом случае народ как раз будет открывать дверь в уже занятую кабинку.
Здравствуйте, mgu, Вы писали:
mgu>Начнём интервью прямо в очереди (ответы на вопросы приводятся ниже).
Директор нанимает на работу уборщицу.
Директор:
— Скажите, что означает буква М и два нолика на двери?
Уборщица:
— Туалет мужской, двухочковый.
Директор:
— А если буква Ж и два нолика?
Уборщица:
— Это, соответственно, женский двухочковый туалет. Разрешите, господин директор, тоже задать вам вопрос. Что такое два нолика и буква Н?
Директор:
— Не знаю.
Уборщица:
— Это Организация Объединенных Наций. В говне-то вы хорошо разбираетесь...
Здравствуйте, so5team, Вы писали:
S>Ну вот, вы опять про деньги. А ведь речь шла о том, что время, потраченное на стенания о невозможности найти работу мечты, можно употребить с большей пользой, не обязательно финансовой.
С какой же, например? Замутить стартап? Графоманить на Гитхабе? Пойти с чуваками пить пиво? Оприходовать очередную мадам? Выучить модный фреймворк? Подобные варианты я рассматривал.
S>Но, видимо, цель именно в публикации очередного фельетона: вы выговорились и вам стало легче.
Удовольствия от процесса творчества никто не отменял.
Здравствуйте, ksandro, Вы писали:
K>Вы не пройдете собеседование. Ваш вопрос про отсутствие замка, а не про сломанный замок. В этом случае народ как раз будет открывать дверь в уже занятую кабинку.
А какая разница? При отсутствии замка открывать не будут что ли?
Здравствуйте, mgu, Вы писали:
S>>Ну вот, вы опять про деньги. А ведь речь шла о том, что время, потраченное на стенания о невозможности найти работу мечты, можно употребить с большей пользой, не обязательно финансовой.
mgu>С какой же, например? Замутить стартап? Графоманить на Гитхабе? Выучить модный фреймворк?
Любое из. Или любое сочетание из. Ну и плюс к том, скажем, написать книгу. Например, "Как не стать overqualified и счастливо жить среди говнокода в говноконторах и чувствовать себя при этом Д'Артаньяном". Или открыть учебные курсы своего имени на тему "войти-в-ойти".
mgu>Пойти с чуваками пить пиво? Оприходовать очередную мадам?
Ну мы же в разделе "job", не стоит выходить за рамки проф.деятельности, связанной с разработкой ПО.
mgu>Подобные варианты я рассматривал.
Между рассматривать и попробовать огромная разница.
S>>Но, видимо, цель именно в публикации очередного фельетона: вы выговорились и вам стало легче.
mgu>Удовольствия от процесса творчества никто не отменял.
Здравствуйте, mgu, Вы писали:
mgu>Здравствуйте, ksandro, Вы писали:
K>>Вы не пройдете собеседование. Ваш вопрос про отсутствие замка, а не про сломанный замок. В этом случае народ как раз будет открывать дверь в уже занятую кабинку.
mgu>А какая разница? При отсутствии замка открывать не будут что ли?
разница в том что если отсутствует объект синхронизации ("Задвижка, щеколда и т. п.") то возникает race condition а не deadlock. Дверь нельзя запереть, доступ к ресурсу не синхронизирован соответственно в кабинку может заломиться кто-то еще и отвлечь Вас там от очень важных дел.
Здравствуйте, so5team, Вы писали:
mgu>>С какой же, например? Замутить стартап? Графоманить на Гитхабе? Выучить модный фреймворк?
S>Любое из. Или любое сочетание из.
Пробовал, выхлоп стремится к нулю.
S>Ну и плюс к том, скажем, написать книгу. Например, "Как не стать overqualified и счастливо жить среди говнокода в говноконторах и чувствовать себя при этом Д'Артаньяном".
А я не знаю ответа на этот вопрос.
S>Или открыть учебные курсы своего имени на тему "войти-в-ойти".
Занимался подобным, лет так 20 тому назад. Скучно рассказывать про байты с утра до вечера. Можно, конечно, было бы написать книгу о кошерном программировании, но всё уже давно написано. Современные же издания строятся по следующему принципу: всё существующее неправильно, вот я вам расскажу, как переставлять кровати и стрелять по ним серебряными пулями. И на 600 страниц -- для жирного гонорара.
mgu>>Подобные варианты я рассматривал.
S>Между рассматривать и попробовать огромная разница.
Умный учится на чужих ошибках, средний -- на своих, а глупый наступает на те же грабли.
mgu>>Удовольствия от процесса творчества никто не отменял.
S>Дык о том и речь.
Если ограничиться программированием, то я и интересуюсь наличием возможностей творить в принципе. Пока же всё, с чем я сталкиваюсь, сводится к унылому копированию и поиску блох. Единственная отдушина -- это чистка отхожих мест. Но всё-таки превращение тришкиного кафтана в конфетку неравноценно созданию удобного, качественного, производительного и расширяемого продукта с нуля.
Здравствуйте, ksandro, Вы писали:
mgu>>А какая разница? При отсутствии замка открывать не будут что ли? K>разница в том что если отсутствует объект синхронизации ("Задвижка, щеколда и т. п.") то возникает race condition а не deadlock. Дверь нельзя запереть, доступ к ресурсу не синхронизирован соответственно в кабинку может заломиться кто-то еще и отвлечь Вас там от очень важных дел.
А, кажется я понял. Я рассматривал туалетную кабинку мьютексного типа, наиболее распространённого. То есть того, где не помещается больше одной персоны, дверь же открывается внутрь.
А насчёт race condition по-прежнему не согласен. Гонки подразумевают одинаковые действия в одинаковом направлении. Представим себе туалет-синглтон в середине коридора. Из комнат в начале и конце одновременно выходят два однополых существа с очень серьёзным видом. Они моментально догадываются о намерениях друг друга, и вот тут начинается race condition.
Здравствуйте, mgu, Вы писали:
S>>Ну и плюс к том, скажем, написать книгу. Например, "Как не стать overqualified и счастливо жить среди говнокода в говноконторах и чувствовать себя при этом Д'Артаньяном".
mgu>А я не знаю ответа на этот вопрос.
А по вашим фельетонам кажется, что знаете.
S>>Между рассматривать и попробовать огромная разница.
mgu>Умный учится на чужих ошибках, средний -- на своих, а глупый наступает на те же грабли.
Приобретение некоторых навыков требует повторения чужих ошибок, вне зависимости от умственных способностей обучающегося. Яркий пример -- езда на велосипеде. Можно сколь угодно много повторять процитированную вами банальность, но научиться ездить на велосипеде она не поможет.
mgu>созданию удобного, качественного, производительного и расширяемого продукта с нуля.
Может стоит попробовать сделать собственный продукт хотя бы для того, чтобы понять, что "удобный, качественный, производительный и расширяемый продукт" -- это сферический конь в вакууме, существующий лишь во влажных мечтах программистов, мечтающих об интересной работе.
Здравствуйте, mgu, Вы писали:
mgu>Гонки подразумевают одинаковые действия в одинаковом направлении. Представим себе туалет-синглтон в середине коридора. Из комнат в начале и конце одновременно выходят два однополых существа с очень серьёзным видом. Они моментально догадываются о намерениях друг друга, и вот тут начинается race condition.
Вообще-то для гонок нужен всего лишь общий ресурс. Одинаковость действий необязательна. Пример: вы засели в незакрывающейся кабинке, но туда тут же вломилась уборщица тетя Валя с ведром и шваброй. Действия разные, а race condition в наличии.
Здравствуйте, mgu, Вы писали:
mgu>Здравствуйте, ksandro, Вы писали:
mgu>>>А какая разница? При отсутствии замка открывать не будут что ли? K>>разница в том что если отсутствует объект синхронизации ("Задвижка, щеколда и т. п.") то возникает race condition а не deadlock. Дверь нельзя запереть, доступ к ресурсу не синхронизирован соответственно в кабинку может заломиться кто-то еще и отвлечь Вас там от очень важных дел.
mgu>А, кажется я понял. Я рассматривал туалетную кабинку мьютексного типа, наиболее распространённого. То есть того, где не помещается больше одной персоны, дверь же открывается внутрь.
Ну, я не случайно процитировал 2 вопроса один из них был "как называется объект синхронизации". Тут у Вас объект синхронизации сама кабина (она ж мьютексного типа ). Но аналогия с deadlock-ом весьма туманна...
mgu>А насчёт race condition по-прежнему не согласен. Гонки подразумевают одинаковые действия в одинаковом направлении. Представим себе туалет-синглтон в середине коридора. Из комнат в начале и конце одновременно выходят два однополых существа с очень серьёзным видом. Они моментально догадываются о намерениях друг друга, и вот тут начинается race condition.
я думаю вам стоит повторить многопоточность, race condition ("состояние гонки") исторически сложившийся, но не самый точный термин, возможно поэтому Вы его не очень понимаете.
Здравствуйте, so5team, Вы писали:
S>>>Ну и плюс к том, скажем, написать книгу. Например, "Как не стать overqualified и счастливо жить среди говнокода в говноконторах и чувствовать себя при этом Д'Артаньяном".
mgu>>А я не знаю ответа на этот вопрос.
S>А по вашим фельетонам кажется, что знаете.
Да нет, я же простой акын, что вижу -- о том пою. Впрочем, я знаю один рецепт: "Глас вопиющего в пустыне: спрямите дороги..." Только мне кажется, что это сказал кто-то до меня.
mgu>>Умный учится на чужих ошибках, средний -- на своих, а глупый наступает на те же грабли.
S>Приобретение некоторых навыков требует повторения чужих ошибок, вне зависимости от умственных способностей обучающегося. Яркий пример -- езда на велосипеде. Можно сколь угодно много повторять процитированную вами банальность, но научиться ездить на велосипеде она не поможет.
Зато поможет понять, что не нужно экономить на шлеме и наколенниках.
mgu>>созданию удобного, качественного, производительного и расширяемого продукта с нуля.
S>Может стоит попробовать сделать собственный продукт хотя бы для того, чтобы понять, что "удобный, качественный, производительный и расширяемый продукт" -- это сферический конь в вакууме, существующий лишь во влажных мечтах программистов, мечтающих об интересной работе.
Ну да, Трои тоже не существовало, это всё влажные фантазии Гомера.
Я создавал такие продукты. В те времена, когда компьютеры были большими, а проекты маленькими, и можно было запилить аппликуху в одно рыло. Сейчас же в одиночку можно лишь нагитхабить 100500-ю заплатку к модному чудовищу.
Здравствуйте, so5team, Вы писали:
mgu>>Гонки подразумевают одинаковые действия в одинаковом направлении. Представим себе туалет-синглтон в середине коридора. Из комнат в начале и конце одновременно выходят два однополых существа с очень серьёзным видом. Они моментально догадываются о намерениях друг друга, и вот тут начинается race condition.
S>Вообще-то для гонок нужен всего лишь общий ресурс. Одинаковость действий необязательна. Пример: вы засели в незакрывающейся кабинке, но туда тут же вломилась уборщица тетя Валя с ведром и шваброй. Действия разные, а race condition в наличии.
Не согласен с примером. Использование общего ресурса вовсе необязательно приводит к race condition, более того, в многопоточной среде как раз и надо стремиться к тому, чтобы не возникало конфликтов. Например, запись в log.
Если же сравнивать с туалетом, то представим себе многословный. На дверях надпись: "Уходя, гасите свет!" Я включаю тумблер, делаю свои дела, в это время появляетесь вы и занимаете смежную кабинку. Я выхожу и выключаю свет...
Здравствуйте, ksandro, Вы писали:
mgu>>А, кажется я понял. Я рассматривал туалетную кабинку мьютексного типа, наиболее распространённого. То есть того, где не помещается больше одной персоны, дверь же открывается внутрь. K>Ну, я не случайно процитировал 2 вопроса один из них был "как называется объект синхронизации". Тут у Вас объект синхронизации сама кабина (она ж мьютексного типа ). Но аналогия с deadlock-ом весьма туманна...
Объект синхронизации -- дверь. Просто в случае исправной задвижки на сцене действует один актор, он дёргает за ручку и всё. Но для deadlock-а принципиально наличие 2-х и более заинтересованных сторон. Тогда дверь начинает дёргаться туда-сюда... С криками... Как по мне, так очень наглядно.
K>я думаю вам стоит повторить многопоточность, race condition ("состояние гонки") исторически сложившийся, но не самый точный термин, возможно поэтому Вы его не очень понимаете.
Попробовал повторить.
A race condition or race hazard is the behavior of an electronics, software, or other system where the output is dependent on the sequence or timing of other uncontrollable events.
Состояние гонки (англ. race condition), также конкуренция[1] — ошибка проектирования многопоточной системы или приложения, при которой работа системы или приложения зависит от того, в каком порядке выполняются части кода.
Здравствуйте, mgu, Вы писали:
mgu>Не согласен с примером. Использование общего ресурса вовсе необязательно приводит к race condition, более того, в многопоточной среде как раз и надо стремиться к тому, чтобы не возникало конфликтов. Например, запись в log.
То, что вы не согласны, говорит лишь о том, что поиск работы мечты будет для вас затруднен, если там придется иметь дело с многопоточностью.