Гномики ушли в прошлое, все вопросы и ответы – на первой странице выдачи поисковика, писать код на бумажке не комильфо, а на предложение сделать тестовое задание теперь предлагают сперва произвести тестовую оплату. Но выход есть!
Сегодня зашёл в туалет бизнес-центра, где я числюсь программистом, а в унитазе пирамида Хефрена. Почему именно его? Это первый вопрос, на обшую эрудицию. Ладно, необразованные вы мои, отвечу: во-первых, неизвестно, какой хефрен это сделал. А во-вторых, сверху белеет облицовка.
Итак, приходит кандидат с мыслью, почерпнутой в интернетах – заглянуть в сортир с целью оценки компании. А мы играем на опережение: извольте пройти в наш клозетспейс. Начнём интервью прямо в очереди (ответы на вопросы приводятся ниже).
1. При каких условиях очередь в туалет заменяется стеком?
2. В каких туалетах унитазы поддерживают многопоточность?
3. Что такое критическая секция?
4. Какие вы знаете объекты синхронизации в местах общего пользования?
5. Что может произойти в туалете при отсутствии объектов синхронизации?
6. Чем WHERE отличается от HAVING в контексте необходимости сделать dump?
7. Если для учёта туалетов на серверной стороне используются, как правило, логические значения для «М» и «Ж», то какой тип обычно применяется на клиентской части?
8. Назовите термин, относящийся к двум состояниям – «свободно» и «занято».
9. У индийцев и близких к ним народов принято смывать из шланга. Назовите этот и западный способы двумя английскими словами.
10. Что такое переполнение стека, надеюсь, объяснять не надо. А при каких действиях в туалете требуется особенно внимательно следить за размером?
11. Перед вами пирамида, засорившая унитаз. Какие ошибки были допущены с точки зрения использования системы контроля версий?
Потливые умы всё-таки поинтересуются по поводу сборщика мусора: а вдруг он успеет убрать кучу до интервью? Неужели придётся экстренно искать специалиста с большой Жо? Отвечаю: к интервью всё-таки надо готовиться – внедрить IoT, где для задвижек кабинок будет разработана такая хеш-функция, что весь коллектив будет срать в одно ведро. Закешируйте его для использования непосредственно перед собеседованием. Ну а после такого интервью любой кандидат навалит вам в унитаз двухсоттонными блоками.
Ответы
1. При распределённой системе туалетов. Тогда последние из страждущих первыми выскакивают из предбанника в надежде, что кабинки на других этажах посвободнее.
2. В мужских.
3. Одна кабинка на всю компанию.
4. Задвижка, щеколда и т. п.. В худшем случае остаётся мониторить.
5. Deadlock: из кабинки не выйти, и в кабинку не войти.
6. WHERE – выбрать места, где можно посрать. HAVING – отфильтровать из группы доступных толчков те, где имеется туалетная бумага.
7. undefined.
8. Принцип открытости/закрытости.
9. Agile, waterfall.
10. При написании стихов.
11. Отправлять нужно наименьшими порциями. Перед нажатием кнопки push обязательно сделать pull пустой гильзы от туалетной бумаги.
Здравствуйте, mgu, Вы писали:
mgu>Начнём интервью прямо в очереди (ответы на вопросы приводятся ниже).
Директор нанимает на работу уборщицу.
Директор:
— Скажите, что означает буква М и два нолика на двери?
Уборщица:
— Туалет мужской, двухочковый.
Директор:
— А если буква Ж и два нолика?
Уборщица:
— Это, соответственно, женский двухочковый туалет. Разрешите, господин директор, тоже задать вам вопрос. Что такое два нолика и буква Н?
Директор:
— Не знаю.
Уборщица:
— Это Организация Объединенных Наций. В говне-то вы хорошо разбираетесь...
Здравствуйте, mgu, Вы писали:
K>>Но одно так и не понял, почему именно deadlock а не race condition?
mgu>В последнем случае 2+ актора пытаются завладеть одним и тем же ресурсом. А при мёртвом замке один из участников не может освободить ресурс из-за другого.
Вы не пройдете собеседование. Ваш вопрос про отсутствие замка, а не про сломанный замок. В этом случае народ как раз будет открывать дверь в уже занятую кабинку.
Здравствуйте, mgu, Вы писали:
mgu>Гонки подразумевают одинаковые действия в одинаковом направлении. Представим себе туалет-синглтон в середине коридора. Из комнат в начале и конце одновременно выходят два однополых существа с очень серьёзным видом. Они моментально догадываются о намерениях друг друга, и вот тут начинается race condition.
Вообще-то для гонок нужен всего лишь общий ресурс. Одинаковость действий необязательна. Пример: вы засели в незакрывающейся кабинке, но туда тут же вломилась уборщица тетя Валя с ведром и шваброй. Действия разные, а race condition в наличии.
Здравствуйте, mgu, Вы писали:
mgu>Здравствуйте, so5team, Вы писали:
S>>То, что вы не согласны, говорит лишь о том, что поиск работы мечты будет для вас затруднен, если там придется иметь дело с многопоточностью.
mgu>Моя работа мечты -- это такая, где я буду определять, нужно ли использовать многопоточность и каким образом. В тех случаях, когда мне это удаётся, я обхожусь практически всегда без объектов синхронизации. (Что сейчас начнётся!)
Ой не доверял бы я вам писать что-то многопоточное... Что значит "удается"? Это когда нечего синхронизировать? Или когда запустил без синхронизации, вроде работает... Ура!!! мне удалось!!!
Здравствуйте, s_aa, Вы писали:
_>И охота тебе простыни с такой ерундой строить?
Дай хоть в мечтах "почислиться программистом в бизнес-центре", а не уборщиком пирамид в клозетах.
Здравствуйте, mgu, Вы писали: mgu>Гномики ушли в прошлое, все вопросы и ответы – на первой странице выдачи поисковика, писать код на бумажке не комильфо, а на предложение сделать тестовое задание теперь предлагают сперва произвести тестовую оплату. Но выход есть! mgu>Сегодня зашёл в туалет бизнес-центра, где я числюсь программистом, а в унитазе пирамида Хефрена. Почему именно его? Это первый вопрос, на обшую эрудицию. Ладно, необразованные вы мои, отвечу: во-первых, неизвестно, какой хефрен это сделал. А во-вторых, сверху белеет облицовка. mgu>Итак, приходит кандидат с мыслью, почерпнутой в интернетах – заглянуть в сортир с целью оценки компании. А мы играем на опережение: извольте пройти в наш клозетспейс. Начнём интервью прямо в очереди (ответы на вопросы приводятся ниже). mgu>1. При каких условиях очередь в туалет заменяется стеком? mgu>2. В каких туалетах унитазы поддерживают многопоточность? mgu>3. Что такое критическая секция? mgu>4. Какие вы знаете объекты синхронизации в местах общего пользования? mgu>5. Что может произойти в туалете при отсутствии объектов синхронизации? mgu>6. Чем WHERE отличается от HAVING в контексте необходимости сделать dump? mgu>7. Если для учёта туалетов на серверной стороне используются, как правило, логические значения для «М» и «Ж», то какой тип обычно применяется на клиентской части? mgu>8. Назовите термин, относящийся к двум состояниям – «свободно» и «занято». mgu>9. У индийцев и близких к ним народов принято смывать из шланга. Назовите этот и западный способы двумя английскими словами. mgu>10. Что такое переполнение стека, надеюсь, объяснять не надо. А при каких действиях в туалете требуется особенно внимательно следить за размером? mgu>11. Перед вами пирамида, засорившая унитаз. Какие ошибки были допущены с точки зрения использования системы контроля версий? mgu>Потливые умы всё-таки поинтересуются по поводу сборщика мусора: а вдруг он успеет убрать кучу до интервью? Неужели придётся экстренно искать специалиста с большой Жо? Отвечаю: к интервью всё-таки надо готовиться – внедрить IoT, где для задвижек кабинок будет разработана такая хеш-функция, что весь коллектив будет срать в одно ведро. Закешируйте его для использования непосредственно перед собеседованием. Ну а после такого интервью любой кандидат навалит вам в унитаз двухсоттонными блоками. mgu>
Ответы
mgu>1. При распределённой системе туалетов. Тогда последние из страждущих первыми выскакивают из предбанника в надежде, что кабинки на других этажах посвободнее. mgu>2. В мужских. mgu>3. Одна кабинка на всю компанию. mgu>4. Задвижка, щеколда и т. п.. В худшем случае остаётся мониторить. mgu>5. Deadlock: из кабинки не выйти, и в кабинку не войти. mgu>6. WHERE – выбрать места, где можно посрать. HAVING – отфильтровать из группы доступных толчков те, где имеется туалетная бумага. mgu>7. undefined. mgu>8. Принцип открытости/закрытости. mgu>9. Agile, waterfall. mgu>10. При написании стихов. mgu>11. Отправлять нужно наименьшими порциями. Перед нажатием кнопки push обязательно сделать pull пустой гильзы от туалетной бумаги.
Здравствуйте, mgu, Вы писали:
mgu>Гномики ушли в прошлое, все вопросы и ответы – на первой странице выдачи поисковика, писать код на бумажке не комильфо, а на предложение сделать тестовое задание теперь предлагают сперва произвести тестовую оплату. Но выход есть!
Всегда можно найти работу на биржах вроде апворк или запустить свой продукт.
Здравствуйте, mgu, Вы писали:
_AB>>Дай хоть в мечтах "почислиться программистом в бизнес-центре", а не уборщиком пирамид в клозетах. mgu>А что, есть принципиальная разница?
Никакой разницы, что ты. Ты, главное, не волнуйся. Нет между тобой и программистом разницы. Убирать пирамиды
в туалетах тоже надо.
Здравствуйте, _ABC_, Вы писали:
_AB>>>Дай хоть в мечтах "почислиться программистом в бизнес-центре", а не уборщиком пирамид в клозетах. mgu>>А что, есть принципиальная разница? _AB>Никакой разницы, что ты. Ты, главное, не волнуйся. Нет между тобой и программистом разницы. Убирать пирамиды _AB>в туалетах тоже надо.
А что, в вашем общественном репозитории кодом не пахнет?
Здравствуйте, mgu, Вы писали:
mgu>Здравствуйте, Arsen.Shnurkov, Вы писали:
AS>>Предлагаю создать новый форум — "для быдла и сортирного юмора".
mgu>А кто его будет наполнять? Я, если что, пас -- мою сатиру про хеш-функции быдло не поймёт.
Ну да, куда уж нам, быдлу, понять не быдло
Да ладно, заклевали прям Тема жизненная. Я у нас аж бумажку на двери туалета оставлял с просьбой запускать проверку RAM, а то видимо планки сбоят, вот и забывают пирамиды за собой подчищать. Но пирамиды еще ладно, бывает все хуже. И тогда думаешь — я точно в банке работаю, а не в McDonald's (если кто Герцог и не был в McDonald's, то скажу, что там зачастую в туалетах все плохо)?
Здравствуйте, MozgC, Вы писали:
MC>Да ладно, заклевали прям Тема жизненная. Я у нас аж бумажку на двери туалета оставлял с просьбой запускать проверку RAM, а то видимо планки сбоят, вот и забывают пирамиды за собой подчищать. Но пирамиды еще ладно, бывает все хуже. И тогда думаешь — я точно в банке работаю, а не в McDonald's (если кто Герцог и не был в McDonald's, то скажу, что там зачастую в туалетах все плохо)?
Думаю, что всё-таки проблема не в памяти, а в том, что после commit-а предлагается сделать merge вручную.
Здравствуйте, mgu, Вы писали:
S>>Иронически-саркастические посты на RSDN-е дают намного больший полезный выхлоп?
mgu>Не всё измеряется бабосами. Может, публикации на RSDN-е для меня большая честь?
Вопрос был не про бабосы, но, видимо, вся польза состоит в поимении чести от публикаций на RSDN.
Здравствуйте, 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>Переходя на личности: но вы же тоже сюда пишете и явно не за деньги.
Ну вот, вы опять про деньги. А ведь речь шла о том, что время, потраченное на стенания о невозможности найти работу мечты, можно употребить с большей пользой, не обязательно финансовой. Но, видимо, цель именно в публикации очередного фельетона: вы выговорились и вам стало легче.
Здравствуйте, 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>Здравствуйте, 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.
То, что вы не согласны, говорит лишь о том, что поиск работы мечты будет для вас затруднен, если там придется иметь дело с многопоточностью.
Здравствуйте, mgu, Вы писали:
mgu>Зато поможет понять, что не нужно экономить на шлеме и наколенниках.
Ну так не экономьте. Но ведь в вашем случае речь идет вообще о нежелании.
mgu>Ну да, Трои тоже не существовало, это всё влажные фантазии Гомера.
Говорят, что Трою таки раскопали. А вот в вашем случае:
mgu>Я создавал такие продукты. В те времена, когда компьютеры были большими, а проекты маленькими, и можно было запилить аппликуху в одно рыло.
больше похоже на радужные воспоминания о счастливой юности, когда трава была зеленее, а вода -- мокрее. Когда программный продукт начинал использоваться, то всегда возникали неустранимые противоречия между ресурсами (деньги, время), требованиями (заказчиков, смежников, ...) и хотелками (автора, пользователей). В результате поиска компромисса между этими противоречиями и получался реальный код, который где-то пах чуть получше, где-то чуть похуже. И это совсем не сильно зависело от ЯП, от оборудования или операционной системы.
Здравствуйте, mgu, Вы писали:
mgu>Здравствуйте, ksandro, Вы писали:
mgu>Объект синхронизации -- дверь. Просто в случае исправной задвижки на сцене действует один актор, он дёргает за ручку и всё. Но для deadlock-а принципиально наличие 2-х и более заинтересованных сторон. Тогда дверь начинает дёргаться туда-сюда... С криками... Как по мне, так очень наглядно.
Да, наглядно, но имеет весьма отдаленное отношение к тому как реально возникает deadlock. Если бы мне объясняли, что такое deadlock при помощи этой аналогии, я бы ничего не понял. То у Вас кабинка это мьютекс, теперь вот дверь объект синхронизации. Давайте я Вам снова приведу Вашу цитату:
mgu>4. Какие вы знаете объекты синхронизации в местах общего пользования? mgu>5. Что может произойти в туалете при отсутствии объектов синхронизации?
mgu>Ответы
mgu>4. Задвижка, щеколда и т. п.. В худшем случае остаётся мониторить. mgu>5. Deadlock: из кабинки не выйти, и в кабинку не войти.
mgu>Половина потерялась при переводе. Как говорил Шариков, несогласен я, с обоими. Я бы сформулировал так:
mgu>Нарушение корректности данных вследствие неатомарности операций при многопоточном исполнении.
Очень хорошее определение, действительно лучше, чем определение в Википедии.
Здравствуйте, so5team, Вы писали:
S>То, что вы не согласны, говорит лишь о том, что поиск работы мечты будет для вас затруднен, если там придется иметь дело с многопоточностью.
Моя работа мечты -- это такая, где я буду определять, нужно ли использовать многопоточность и каким образом. В тех случаях, когда мне это удаётся, я обхожусь практически всегда без объектов синхронизации. (Что сейчас начнётся!)
Здравствуйте, so5team, Вы писали:
mgu>>Зато поможет понять, что не нужно экономить на шлеме и наколенниках.
S>Ну так не экономьте. Но ведь в вашем случае речь идет вообще о нежелании.
Отнюдь. Ещё одна банальность: чтобы оценить суп, необязательно съедать всю кастрюлю.
mgu>>Ну да, Трои тоже не существовало, это всё влажные фантазии Гомера.
S>Говорят, что Трою таки раскопали.
Прокопали насквозь.
mgu>>Я создавал такие продукты. В те времена, когда компьютеры были большими, а проекты маленькими, и можно было запилить аппликуху в одно рыло.
S>больше похоже на радужные воспоминания о счастливой юности, когда трава была зеленее, а вода -- мокрее. Когда программный продукт начинал использоваться, то всегда возникали неустранимые противоречия между ресурсами (деньги, время), требованиями (заказчиков, смежников, ...) и хотелками (автора, пользователей). В результате поиска компромисса между этими противоречиями и получался реальный код, который где-то пах чуть получше, где-то чуть похуже.
Процесс разработки ПО гораздо разнообразнее.
S>И это совсем не сильно зависело от ЯП, от оборудования или операционной системы.
Здравствуйте, ksandro, Вы писали:
K>Да, наглядно, но имеет весьма отдаленное отношение к тому как реально возникает deadlock. Если бы мне объясняли, что такое deadlock при помощи этой аналогии, я бы ничего не понял.
Наверно, это надо пережить:
"Откройте, у меня понос!" А из-за двери: "Оооо-о-о-о-о, счастливчик!!!"
Такое ведь тоже может быть непонятно:
А знаете ли вы, что 1 минута с той и этой стороны кабинки тянется по-разному?
K>То у Вас кабинка это мьютекс, теперь вот дверь объект синхронизации.
Мьютекс в том смысле, что не семафор на несколько персон.
K>Давайте я Вам снова приведу Вашу цитату:
mgu>>4. Какие вы знаете объекты синхронизации в местах общего пользования? mgu>>5. Что может произойти в туалете при отсутствии объектов синхронизации?
mgu>>Ответы
mgu>>4. Задвижка, щеколда и т. п.. В худшем случае остаётся мониторить. mgu>>5. Deadlock: из кабинки не выйти, и в кабинку не войти.
Согласен, коряво сформулировал. Дверь и кабинка становятся объектами синхронизации поневоле.
mgu>>Половина потерялась при переводе. Как говорил Шариков, несогласен я, с обоими. Я бы сформулировал так:
mgu>>Нарушение корректности данных вследствие неатомарности операций при многопоточном исполнении.
K>Очень хорошее определение, действительно лучше, чем определение в Википедии.
А мне разонравилось. Лучше так:
Нарушение корректности данных и/или результатов вследствие неатомарности операций при многопоточном исполнении.
Здравствуйте, mgu, Вы писали:
mgu>Здравствуйте, ksandro, Вы писали:
K>>Да, наглядно, но имеет весьма отдаленное отношение к тому как реально возникает deadlock. Если бы мне объясняли, что такое deadlock при помощи этой аналогии, я бы ничего не понял.
mgu>Наверно, это надо пережить:
ну вот не добавляют Вам эти переживания понимания многопоточности...
mgu>Такое ведь тоже может быть непонятно:
mgu>
mgu>А знаете ли вы, что 1 минута с той и этой стороны кабинки тянется по-разному?
Это вооще к чему?
K>>То у Вас кабинка это мьютекс, теперь вот дверь объект синхронизации.
mgu>Мьютекс в том смысле, что не семафор на несколько персон.
Да я уж понял, сначала объект синхронизации это щеколда, потом дверь, а кабинка мьютекс, но только потому что не семафор. У Вас похоже гуманитарный склад ума (ну или просто троль )
K>>Давайте я Вам снова приведу Вашу цитату:
mgu>Согласен, коряво сформулировал. Дверь и кабинка становятся объектами синхронизации поневоле.
У... кабина все-таки стала объектом синхронизации!!!
K>>Очень хорошее определение, действительно лучше, чем определение в Википедии.
mgu>А мне разонравилось. Лучше так:
mgu>Нарушение корректности данных и/или результатов вследствие неатомарности операций при многопоточном исполнении.
Ну вот определения даете, одно лучше другого. Но почему-то race condition в вашем же примере увидеть не хотите...
Здравствуйте, ksandro, Вы писали:
K>Ой не доверял бы я вам писать что-то многопоточное... Что значит "удается"? Это когда нечего синхронизировать? Или когда запустил без синхронизации, вроде работает... Ура!!! мне удалось!!!
Здравствуйте, ksandro, Вы писали:
mgu>>Наверно, это надо пережить:
K>ну вот не добавляют Вам эти переживания понимания многопоточности...
mgu>>Такое ведь тоже может быть непонятно:
mgu>>
mgu>>А знаете ли вы, что 1 минута с той и этой стороны кабинки тянется по-разному?