Comments 439
Видимо это очень смешно, жаль я не понимаю о чём это... =(
это С#. и настоящий WTF. lock ("Place Order") - бессмыслица жуткая
Что делает оператор lock?
запрещает доступ к ресурсу, указанному в аргументе, другим потокам, пока текущий поток не выполнит операции в части кода, ограниченной lock'ом
ахахахахах
это я всмысле шутку понял ;-)
краткость сестра таланта (с)
это что-то вроде synchronized section в Яве?
чепуха! вовсе он не запрещает доступ к ресурсу, указанному в аргументе. аргумент - всего лишь объект синхронизации. И что вообще значит "запретить доступ к ресурсу"?
аргумент - любой объект. Да, у него где-то внутри есть примитив/объект синхронизации, критическая секция например.
Запретить доступ к ресурсу - хм, ну другой поток, который попытается выполнить код, ограниченный lock'ом, вынужден будет ждать.
Запретить доступ к ресурсу - хм, ну другой поток, который попытается выполнить код, ограниченный lock'ом, вынужден будет ждать.
Но вы то написали "запрещает доступ к ресурсу, указанному в аргументе, другим потокам..." - хотя может я просто не понял фразы :)
В любом случае объект синхронизации остается очень даже доступным. Критической секции не создается для отдельного объекта - это сочли неоптимальным - вместо этого в поле SyncBlockIndex у каждого объекта хранится индекс критической секции из кэша(если он не участвует в синхронизации то SyncBlockIndex==-1).
http://msdn.microsoft.com/en-us/magazine…
В любом случае объект синхронизации остается очень даже доступным. Критической секции не создается для отдельного объекта - это сочли неоптимальным - вместо этого в поле SyncBlockIndex у каждого объекта хранится индекс критической секции из кэша(если он не участвует в синхронизации то SyncBlockIndex==-1).
http://msdn.microsoft.com/en-us/magazine…
lock ("string") MSDN <a href="http://msdn.microsoft.com/en-us/library/c5kehkcz.aspx"упоминает</a>, как common practice, естественно, осуждая при этом.
Давно не имел дела с .NET, но насколько я понимаю, строка интернируется и полной бессмыслицей назвать код нельзя.
Давно не имел дела с .NET, но насколько я понимаю, строка интернируется и полной бессмыслицей назвать код нельзя.
Извиняюсь, тег недопечатал. правильная ссылка на MSDN
мне почему-то кажется, что переменную не ссылочного типа использовать не получится, даже если она становится статической переменной. может я не прав. в любом случае это очень неочевидный, а следовательно не очень хороший код для поддержки, даже если он таки работает правильно. но мысль интересная, надо будет проверить как такой код себя ведет
И всё таки! Кто нить обьясните в чём соль!
З.Ы: А ты понимаешь в чём соль %username%?
З.Ы: А ты понимаешь в чём соль %username%?
господа делаем ставки =)
1. Рейтинг статьи от 10 до 15 (по модулю).
2. Карма автора от 7 до 10 (по модулю).
3. Перемещение в «Юмор на Хабрахабре» или в новый коллективный блог «КодоБредоБред» (в случае, если сознательные хабраграждане спасут карму автора).
2. Карма автора от 7 до 10 (по модулю).
3. Перемещение в «Юмор на Хабрахабре» или в новый коллективный блог «КодоБредоБред» (в случае, если сознательные хабраграждане спасут карму автора).
Сэр, с вами всё порядке?
Шедеврально! Плюсанул статью, пока ее не заминусовали :)
Это надо вообще на главную, такое не каждый день увидишь
Много нового узнал :)
Много нового узнал :)
Полностью с солидарен с Вашей точкой зрения. Подача материала великолепна. Что-либо близкое по уровню я не встречал, наверное, со времени чтения McConnell'а.
Коллега, ведь мы наблюдаем с вами по истине революционный момент в истории технической литературы.
Lock ещё долго будут приводить в пример другим писателям и заслуженно считать классикой жанра.
Lock ещё долго будут приводить в пример другим писателям и заслуженно считать классикой жанра.
Да-да! Хоть стиль немного "официальный", суховатый, но, как вы выразились, подача его великолепна! Ну и к концовке чуть придерусь, как-то она замята.
вы смеетесь, а я весь плюсомет расстрелял, включая карму. Через GPRS. Убейте меня :)
вам смешно, а я весь свой плюсомет расстрелял. Через gprs. Убейте меня :)
Автора! Автора! :)
неплохо, неплохо..
Не то окно? =) С IDE перепутали?
Изумительно!
Такая грация...
Чувства переполняют просто...
Такая грация...
Чувства переполняют просто...
{ // some comment }
Главное на главную не выйти. Тогда тролляки всё испортят
Рад что всем понравилось.
Надеюсь с кодом автора больше работать не придется.
Надеюсь с кодом автора больше работать не придется.
Мир вам, братья! :)
В lock мой order!
Добрая фея, где же ты?
Хотел выяснить откуда «растут ноги» у этого куска кода.
К моему удивлению, этот пост Google уже проиндексировал и выдал первой строчкой :)
Google тоже проникся добром к Хабру.
К моему удивлению, этот пост Google уже проиндексировал и выдал первой строчкой :)
Google тоже проникся добром к Хабру.
Кто все эти люди? о_О
Странный код. Объясните, плз, в чем соль?
При некоторых обстоятельствах это даже корректно, не считая того что не скомпилится %)
А вы все - молодцы ^_^
тут походу все каменты плюсуют )))
Возникает когнитивный диссонанс при взгляде на этот комментарий :)
заминусовали... ещё и в карму насрали :(
вам показалось
Даёшь Файрфокс и Гугл
как раз то что надо новичкам - второй день на хабре и под раздачу попасть - птица счастья?
Гениально!)
Изумительно! нет слов!
Лебедев, мак vs винда vs линух, троли
Воистину!
lock ("Place Order") { // some code } © Примечание Forb'а
lock ("Place Order") { // some code } © Примечание Forb'а
Обычно после такого сабантуя наступает жестокий отходняк. Ну-ка, раз...
Потрясающе! Столько смысла в одной строчке я никогда ещё не видел! Автор великолепен! Браво!
Поздравляю всех с победой здравого смысла !!! =)
Потрясающий код (:
Спасибо за участие в эксперименте "как, имея 7 постов, получить 15 очков кармы".
2 симпы автору)
Добро победит зло!
ага, вот эти парни
а в чём юмор, объясните, пожалуйста? я кодить не умею, поэтому и спрашиваю..
Чорд, я вывалил 116 плюсов за сегодня…
а теперь налетели тролли.
а теперь налетели тролли.
этот комментарий не плюсуйте, пожалуйста
я не знаю почему, но мне этот топик начинает нравиться все больше и больше =)
неужели, и мне перепадет?:)
Конечно. У меня плюсы быстро пополняются:)
спасибо:) хорошего вам настроения:)
Пожалуйста:)
Все в тиворз!!! =)
Все в тиворз!!! =)
признайтесь - muse ваш виртуал! %)
он теперь тиворлдс называется
вы - хаброангел
Эйнштейн!
Круто!
ого. бесплатная раздача плюсов :)
может потому что седня 06.07.08? :)
может потому что седня 06.07.08? :)
Круто.
думаю пора уже unlock делать )
хабр превращается в дрочерство на карму
круто (:
lock - новое открытие хабрахабр)
Даже в тэге lock всего одна тема(
Даже в тэге lock всего одна тема(
Е О Х С ??? )))
May the Lock be with you!
Let a power o the lock
bless you!
bless you!
Какая-то массовая истерия чтоли...
---
The lock keyword ensures that one thread does not enter a critical section of code while another thread is in the critical section. If another thread tries to enter a locked code, it will wait, block, until the object is released.
The section Threading (C# Programming Guide) discusses threading.
The lock keyword calls Enter at the start of the block and Exit at the end of the block.
In general, avoid locking on a public type, or instances beyond your code's control. The common constructs lock (this), lock (typeof (MyType)), and lock ("myLock") violate this guideline:
* lock (this) is a problem if the instance can be accessed publicly.
* lock (typeof (MyType)) is a problem if MyType is publicly accessible.
* lock(“myLock”) is a problem because any other code in the process using the same string, will share the same lock.
Best practice is to define a private object to lock on, or a private static object variable to protect data common to all instances.
---
The lock keyword ensures that one thread does not enter a critical section of code while another thread is in the critical section. If another thread tries to enter a locked code, it will wait, block, until the object is released.
The section Threading (C# Programming Guide) discusses threading.
The lock keyword calls Enter at the start of the block and Exit at the end of the block.
In general, avoid locking on a public type, or instances beyond your code's control. The common constructs lock (this), lock (typeof (MyType)), and lock ("myLock") violate this guideline:
* lock (this) is a problem if the instance can be accessed publicly.
* lock (typeof (MyType)) is a problem if MyType is publicly accessible.
* lock(“myLock”) is a problem because any other code in the process using the same string, will share the same lock.
Best practice is to define a private object to lock on, or a private static object variable to protect data common to all instances.
Топикстартера минусуют!
Ану поправить ситуацию! Плюсометы на взвод! =)
Ану поправить ситуацию! Плюсометы на взвод! =)
power of the lock ... ((
unlock("The Beast") { //now run away! }
подняли настроение на весть вечер!
(возможно, и всю следующуне неделю)
(возможно, и всю следующуне неделю)
как тут классно :)
код не выполниться xD
верно так:
lock ("Place Order") { /* some code */ }
верно так:
lock ("Place Order") { /* some code */ }
ничего не понял, но топик добрый, приятно читать комментарии ^_^
Я ничего не понимаю в C#, но мне всё равно очень, очень весело.
на этом дискуссия подошла к своему логическому концу
нифига не подошла, я требую продолжения банкета!
добре!
Это особый, уличный кодинг
Пиченьки!
Локальный праздник =)
Обожаю, когда на хабре появляется пост добра :)
Добро победит! Прошу только без холиворов :)
Добро победит! Прошу только без холиворов :)
Народ, опомнитесь! В полночь все плюсики превратятся в тыквы!
Код выполнится, более того, критическая секция не будет прервана из другого потока этого же процесса, если в нём не будет такого же lock("Place Order"). Не слишком красиво и безопасно, но для топика - не повод.
Мне кажется, ничего ведь страшного не будет, если я про коллайдер тут напишу?
Какой красивый топик :)
Офигеть
Жжоте ребята :) Ыыы
= Объяснение =
МСДН: lock(“myLock”) is a problem because any other code in the process using the same string, will share the same lock.
А это значит, что в момент выполнения этого куска кода если где-нибудь будет выводиться в другом месте строка "Place Order", что вполне возможно, если это какой-нить сервер, или просто передаваться куда-нибудь, то будет жоппа.
Чтобы жоппы не было надо использовать строку типа "аfsakl;jfkldsjfklsdjfklsdjlfjsdlkfjsdlkjfjsdklf jsdlkfj дылвао дылвоа длыфво ажлдыфво адлжоывлдафо дылжво адлжыфво аджлыво аdfsj kлждоп jsg js0934u08 u34208 кощшоавдлжьявмю.бьц34ш к0983лждоыв"
МСДН: lock(“myLock”) is a problem because any other code in the process using the same string, will share the same lock.
А это значит, что в момент выполнения этого куска кода если где-нибудь будет выводиться в другом месте строка "Place Order", что вполне возможно, если это какой-нить сервер, или просто передаваться куда-нибудь, то будет жоппа.
Чтобы жоппы не было надо использовать строку типа "аfsakl;jfkldsjfklsdjfklsdjlfjsdlkfjsdlkjfjsdklf jsdlkfj дылвао дылвоа длыфво ажлдыфво адлжоывлдафо дылжво адлжыфво аджлыво аdfsj kлждоп jsg js0934u08 u34208 кощшоавдлжьявмю.бьц34ш к0983лждоыв"
Только в пределах процесса.
А где про это вааще нормально написано - про процессы, треды и прочее?
http://rsdn.ru/article/dotnet/CSThreadin…
например тут
например тут
kлджоп? :) Не думал что насрать в комментах можно так органично, на 3 строки!
Ситуацию с неправильным комметарием я увидел сразу, а теперь и вообще радуюсь вместе со всеми :) Ну не сталкивался я с C#
Добра и Света вам братья!
Читал сегодня вашу статью!
Многое не понял, но все равно, классно!
Многое не понял, но все равно, классно!
А что все так раздулись? )
Это была первый урок по изучению C#. Что же будет на следующем?.. :)
О великий Макконнелл, спаси нас.
Даешь больше зеленых плюсов чем у первого коммента! (:
lock в опасносте.
Даешь мировой рекорд по количеству одновременно улыбающихся хабралюдей :)
Фуф, я свои 25 раздал, обойма опустела (:
Вот стесняюсь спросить...
А может в честь такого прилива добра на хабр, мне кто-нибудь карму повысит? :)
Давно хочу несколько интересных статей выложить, а кармы по нулям.
А может в честь такого прилива добра на хабр, мне кто-нибудь карму повысит? :)
Давно хочу несколько интересных статей выложить, а кармы по нулям.
Черт, почему я незнаю C#? ;-)
Какой позитивный зеленый топик получился (=
Самое интересное что после десятка коментов все забыли про lock (=
Самое интересное что после десятка коментов все забыли про lock (=
первый раз вижу столько плюсов в коментариях...
Если это топик добра, пожелайте, хабралюди, мне удачи. Если завтра пересдам матан, перейду на 3 курс. :)
Офигеть!
Ну спасибо, народ! Ну настроение подняли!
Прям как из жаркой пустыни да под холодный душ: впервые увидел «Пост Добра» )))
Предлагаю отмечать в календаре «Дни Добра».
06.07.08 замечательно для этого подходит.
До встречи 08.08.08! ;-p
Ну спасибо, народ! Ну настроение подняли!
Прям как из жаркой пустыни да под холодный душ: впервые увидел «Пост Добра» )))
Предлагаю отмечать в календаре «Дни Добра».
06.07.08 замечательно для этого подходит.
До встречи 08.08.08! ;-p
Продолжил позитив и раздал все свои плюсы в этом топике :)))
ALL GLORY TO THE HYPNOTOAD!


Хабр не выдерживает такого груза добра:
"504 Gateway Time-out
nginx/0.6.31"
"504 Gateway Time-out
nginx/0.6.31"
А ты полюбил ближнего своего, %username%?
черт, я поставил минус топику, потом прочитал комменты и теперь мне стыдно :)
while (seeThisComment)
{
karma++; // please ;-)
}
{
karma++; // please ;-)
}
Забавно :-)
Чудеса :)
За всю историю коментариев нету ни одного с отрицательным рейтингом :) Впервые.
есть, но они быстро подправляются плюсами )))
В середине страницы есть парочка.. Ещё несколько НЛО потырило :)
это не первый пост добра, %username%
Я знаю, но этот вроде начинался по другому. Там вроде какая-то шутка была, даже по-моему про программирование. :-/
Где я?!!!!
груз добра грузом, но во что в итоге затранслируется этот код будет зависеть от компилятора. с MS-овским оно вроде даже и работать будет как задумано, а вот с Mono не факт :")
З.Ы.: я так не писал и писать никогда не буду :D
З.Ы.: я так не писал и писать никогда не буду :D
lock мой моск Оо
что с вами люди xD
что с вами люди xD
unLock ("Habra Plus") { // some code }
+++++ + + ++ +++ + + +++++ + + +++++
+ + + + + + + + +++ + + + + +
+ + + + +++ + + + + + + + +
+ + + + + ++ +++ +++ + + ++ +
+ + + + + + + + +++ + + + + +
+ + + + +++ + + + + + + + +
+ + + + + ++ +++ +++ + + ++ +
Это чо, походу не я один сегодня на грудь принял?
Какой хороший пост!
Всем, читающим мой комментарий, я искренне и от всей души желаю счастья и удачи во всех начинаниях. Окружающий нас мир очень хорош, на самом деле. Прекрасно, что выпала возможность поделиться этим знанием со всеми.
Всем, читающим мой комментарий, я искренне и от всей души желаю счастья и удачи во всех начинаниях. Окружающий нас мир очень хорош, на самом деле. Прекрасно, что выпала возможность поделиться этим знанием со всеми.
Азь Езьм «Пост Добра» !!!
прям чудеса :)
Хороший план.
Все так хорошо попали))))
жесть
позитив! :)
этот момент точно войдёт в историю!
этот момент точно войдёт в историю!
плюсанул всем у кого были нули, кроме Setti. понаблюдал гармонию положительных зелёных чисел, вымыл руки, пошёл спать.
Какой позитивный топик :-)
Сишарп в опасносте
хотел посчитать плюсы, но сбился на 223ем, это было где-то 20%, кто-нибудь посчитает до конца?
з.ы. мой первый пост..)
з.ы. мой первый пост..)
luke ("Skywalker") { // I Am Your Father }
Как просто людям сделать приятно :)
Я раздал свою обойму и теперь у мне везде плюсы мерещатся. Даже мемы все как-то перевернулись
в рот мне плюсы
спасибо поплюсовал
ахуеть двайте два
плюсы не мои, я только разместил объяву
чак норрис настолько крут, что у него каждый плю больше другого
где плюсы живут плюсы, две мохнатые плюсы
в рот мне плюсы
спасибо поплюсовал
ахуеть двайте два
плюсы не мои, я только разместил объяву
чак норрис настолько крут, что у него каждый плю больше другого
где плюсы живут плюсы, две мохнатые плюсы
сейчас я расскажу вам немного о плюсах и разные комментарии с точки зрения других людей...
вот у нас в классе есть мальчик... он всем в топике добра плюсанул, а автору не плюсанул - это не правильно. И он мне такой говорит - "плюсы сакс, плюсы сакс", а я ему такой - "а ты хоть знаешь что такое плюсы сакс", он такой - "нет не знаю", а я - "Ну ты вобщето меня ща оскорбил или что-то в этом роде"...
ОМГ... меня клинит =)
вот у нас в классе есть мальчик... он всем в топике добра плюсанул, а автору не плюсанул - это не правильно. И он мне такой говорит - "плюсы сакс, плюсы сакс", а я ему такой - "а ты хоть знаешь что такое плюсы сакс", он такой - "нет не знаю", а я - "Ну ты вобщето меня ща оскорбил или что-то в этом роде"...
ОМГ... меня клинит =)
ужас. поддался влиянию и тоже распулял обойму :")
в плюс мне ноги! :D
в плюс мне ноги! :D
Флеш моб отдыхает "+"
ещё бы карму всем так пораздавали ))
Интересный хабраэффект, интересно, кто этот Робин Гуд... Забирает плюсы у богатых и отдает их бедным? ;)
holy lock!
Прочитав этот коммент, зажмите PageUp и наслаждайтесь вливающейся в вас Силой Плюсов Поста Добра :)
root@dblain# cat /dev/legs > /dev/mouth!!!!11 (c)smash
lock (%username%) { // some code }
=\
=\
мда уж) как я понял, в том lock'е было скрытое указание для хабралюдей начинать дарить карму)
кашпировский не дремлет :)
Хабраэффект наблюдается )
А если бы вместо C# был кусок C++?
Предлагаю назначить 6-е июля праздником lock'a. В этот день все lock'еры собираются
вместе, поют, пляшут и прыгают через костёр. Тому кто сумеет перепрыгнуть - ставят плюс.
вместе, поют, пляшут и прыгают через костёр. Тому кто сумеет перепрыгнуть - ставят плюс.
люди в опасности!
В понедельник динамика продолжается? Вот это сила ЛОКА!
Да прибудет с вами Эта сила!
Да прибудет с вами Эта сила!
Дайош прилив добра на хабре:)


Утверждение. Какая-то у Вас шкала странная.
Доказательство. От -22 до 44 полет нормальный с шагом измерения, равным двум. После этого сразу два раза появляется 45, затем шкала от 46 до 62 идет с шагом, равным единице. Опять же, не совсем понятно, что творится после 62, но если принять предположение, что шаг измерения сохраняется далее, то 64 = ∞.
:)
Доказательство. От -22 до 44 полет нормальный с шагом измерения, равным двум. После этого сразу два раза появляется 45, затем шкала от 46 до 62 идет с шагом, равным единице. Опять же, не совсем понятно, что творится после 62, но если принять предположение, что шаг измерения сохраняется далее, то 64 = ∞.
:)
Блин, наверно не успел уже...
Прочитал ВСЕ комменты. Так и заплюсовал бы все. )))
Ура! Пост добра :)
Кстати, недавно вот тоже столкнулись с таким кодом. Недоуменно изучали мсдн, гуглили, в конце-концов решили, что это был прикол и дружно переписали блокировки.
Кстати, недавно вот тоже столкнулись с таким кодом. Недоуменно изучали мсдн, гуглили, в конце-концов решили, что это был прикол и дружно переписали блокировки.
это особая, хабровская магия
Пост добра это гуд, только жалко они не очень часто. :)
Мне повезет?
И мне! И мне! ^.^
Делаем прогнозы, када будет следующий пост добра...
Плюсанул, хоть и не понял
Хабр пока держится ))
Есть еще хабросилище в lock-ах! И плюсы в плюсометах!
Кармопонос.
От такого количества плюсов кажется, что весь мир переворачивается. :)
Жесть какая)
lock