Здравствуйте, 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>Здравствуйте, so5team, Вы писали:
S>>То, что вы не согласны, говорит лишь о том, что поиск работы мечты будет для вас затруднен, если там придется иметь дело с многопоточностью.
mgu>Моя работа мечты -- это такая, где я буду определять, нужно ли использовать многопоточность и каким образом. В тех случаях, когда мне это удаётся, я обхожусь практически всегда без объектов синхронизации. (Что сейчас начнётся!)
Ой не доверял бы я вам писать что-то многопоточное... Что значит "удается"? Это когда нечего синхронизировать? Или когда запустил без синхронизации, вроде работает... Ура!!! мне удалось!!!
Здравствуйте, 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 минута с той и этой стороны кабинки тянется по-разному?