29-30 ноября в Санкт-Петербурге и 06-07 декабря — в Москве мы запустим шестой семинар по .NET. У нас будет: 700 слушателей, огромные залы, много кофе и зудящее чувство знаний. Чтобы собрать рекордно-длинную программу и количество слушателей мы работали рекордные 5 месяцев. До старта — 9 дней.
Пока шли приготовления к семинару, взор упал на lock()
. И хотя про него сказано казалось бы, много, у меня, как у любителя копнуть в сорцы, возникло непреодолимое желание рассказать, как он устроен. Ведь это — гибридный примитив синхронизации, учитывающий и работу планировщика потоков ОС и lock convoy и starvation. В общем, заглянув в исходники, я проникся уважением к его авторам настолько, что пропал всякий внутренний страх его использовать: просто потому, что я досконально понял, какие конкретно сценарии для него, а какие — нет. На скольких потоках, ядрах, нагрузке, размеру секции. Тем более, когда окончательно разобрался с понятиями кванта, правил его выдачи, вытеснения потоков и прочими низкоуровневыми вопросами. А потому, наш семинар — возможность понять, а не заучить, как что устроено и понять причины: почему это устроенно именно так, а не иначе.
Мы недаром меняли сетку несколько раз: пусть вас это не пугает. Наоборот, она эволюционировала. Она потерпела именно те изменения, чтобы выбросить ненужное, вставить полезное и именно в том порядке, чтобы весь механизм уложился бы в ваших головах.
Для тех, кто купил билеты, у меня задание: необходимо выспаться. Информации будет очень много и вся она пригодится в жизни. Ведь будущее — за многопоточкой, за серверами, обрабатывающими миллионы запросов. Население нашей планеты приближается к 10 миллиардам, доступность сайтов для населения всё выше, люди всё дольше проводят свою жизнь в сети Интернет и задача компаний — успевать расти. А наша — помогать им в этом деле.
Контакты
- Сайт CLRium #6: Concurrency & Parallelism
- sunex.development@gmail.com
- +7 (921) 948-16-08
Автор: Stanislav Sidristij