#374: А делать-то нам нечего!

« картинки и свежие анекдоты | чат

#374: А делать-то нам нечего!

Наверняка вы знаете, что часто причиной тормозов некоторых коммерческих программ являются закладки в коде типа:
for(i = 0; i < 100000000; i++);
на самых часто используемых операциях: отрисовка окна, реакция на событие и т.д. Но иногда бывают случаи, когда подобная закладка несет полезную нагрузку.

Итак, нужно было сделать курсовую, иллюстрирующую, как несколько потоков разделяют общей ресурс – очередь. Одновременно потоки добавляют в очередь данные, а затем считывают из нее то, что добавили. Реализовал на C в Knoppix с использование pthread. Но веселье началось, когда я понял, судя по выводу проги, что потоки выполняются не одновременно, а поочередно.

Два дня и две ночи разбирался в чем дело. Поставил вывод промежуточных результатов после каждого добавления в очередь. Смотрю в логи – работают потоки одновременно, в очередь кидают как надо данные – все в порядке. К слову, семафоры у меня стояли правильно и никаких потерей указателя на очередь не было. Вырубаю ведение логов – потоки упрямо идут друг за дружкой.
После 5-часовой медитации и курения исходников до меня дошло – ведение логов и заставляло прогу работать правильно! При операциях ввода-вывода между добавлением данных в очередь теряется часть времени достаточная, чтобы хоть немного потоки поработали вместе.

После добавления аналога: for(i = 0; i < 100000000; i++) в поток, я заплакал над убитыми впустую выходными...

Комментарий:

Ваше имя:

Ещё интересное на этом сайте:

#373: Монитор сохранению не подлежит!
#372: Все сожрал вирус!
Ксения Сухинова - Мисс Мира-2008
Девушки 18+
Узкое место в строительстве
Фотожаба: Голодный охранник
Анекдоты и картинки #26762
Анекдоты и картинки #26761
Ну просто одно лицо!
Нож разведчика стреляющий
Морское чучело - гроза пиратов
Зоологическое оголение
[bash] Техподдержка и ребёнок
Деревомэн
Презервативы Sex & Sundhed
Смотреть можно долго
Перестройка (13 фото)
Строительство метро
Попади в Буша! (игра)
Детские мечты
« все анекдоты и картинки
Рейтинг@Mail.ru