Re[5]: Многопоточность + синхронизация + как бороться?
От: npo_mir  
Дата: 06.03.06 02:51
Оценка:
On Sun, 05 Mar 2006 19:35:26 +0600, HAS <36274@users.rsdn.ru> wrote:

>> Это нужно смотреть что у вас в ParsePage(Thread->Page);

> на данный момент там PushPage(Addresses[random(AddressCounts)]); т.е. просто добавление страницы в очередь

Хм... кстати, может менеджер памяти не знает про многопоточность и начинают лезть глюки с памятью?

По поводу зависаний: если зависло и при этом не есть процессорное время, то дело явно в deadlock.

В любом случае это нужно все прогнать под отладчиком.

>> Зачем? Какой вам тогда вообще смысл в многопоточности если вы ее накорню прибиваете.

> почему?

Не, если функция состоит всего из одной простой операции, то все нормально. Но если там что-нить посложнее, то получится что остальные потоки вместо того чтобы делать свое дело будут тупо ждать пока функция завершит свою работу, что не есть хорошо.

Как я уже говорил, синхронизировать доступ нужно не к функциям, а к разделяемым ресурсам. В вашем случае — это та очередь с которой вы работаете.

--
Всего хорошего, Слава.
ICQ: 197577902
Posted via RSDN NNTP Server 2.0
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.