2 / 2 / 0
Регистрация: 04.04.2011
Сообщений: 160
|
|
1 | |
Многопоточное программирование19.09.2011, 11:46. Показов 5077. Ответов 12
Метки нет Все метки)
(
Программа выполняется в одном потоке. Есть три обработчика событий. Как сделать так, чтобы каждый обработчик выполнялся в отдельном потоке параллельно с основным потоком? Процессор четырех ядерный.
0
|
|
19.09.2011, 11:46 | |
Ответы с готовыми решениями:
12
Многопоточное программирование Асинхронное vs. Многопоточное программирование Что такое многопоточное программирование? Многопоточное программирование по Шилдту: разобрать код |
93 / 93 / 19
Регистрация: 25.12.2010
Сообщений: 316
|
||||||
19.09.2011, 12:18 | 2 | |||||
1
|
2 / 2 / 0
Регистрация: 04.04.2011
Сообщений: 160
|
|
19.09.2011, 12:24 [ТС] | 3 |
Куда это записать, прямо в обработчик? Нужно ли как-то закреплять каждый поток за отдельным ядром процессора (4 ядра - 1 основной поток, и 3 обработчика) можете пояснить?
0
|
Заблокирован
|
||||||
19.09.2011, 12:42 | 4 | |||||
По поводу закрепления потока за выбранным ядром - не в курсах. Походу это решает сама система.
1
|
311 / 249 / 44
Регистрация: 06.12.2010
Сообщений: 527
|
|||||||||||
19.09.2011, 12:44 | 5 | ||||||||||
Нет, кол-во потоков не зависит от кол-ва ядер.
Пример:
1
|
![]() 17202 / 12656 / 3321
Регистрация: 17.09.2011
Сообщений: 20,932
|
||||||
19.09.2011, 12:53 | 6 | |||||
Оставьте распределение по ядрам процессора на совести операционной системы.
0
|
2 / 2 / 0
Регистрация: 04.04.2011
Сообщений: 160
|
||||||
19.09.2011, 13:03 [ТС] | 7 | |||||
Согласен. Но если создать много потоков на одном ядре это снизит производительность за счет того, что время переключения между потоками будет занимать значительную часть всего времени работы процессора.
И все таки я не понял. Обработчик у меня выполняет получение данных с сервера (три обработчика - три разных сервера) и выглядит так:
0
|
311 / 249 / 44
Регистрация: 06.12.2010
Сообщений: 527
|
|
19.09.2011, 13:08 | 8 |
Ну это само собой.
Насколько я понимаю, с точки зрения быстродействия все выше приведенные примеры ничем не отличаются.
1
|
![]() 17202 / 12656 / 3321
Регистрация: 17.09.2011
Сообщений: 20,932
|
|||||||||||
19.09.2011, 13:09 | 9 | ||||||||||
Операционная система раскидает потоки по процессорам за вас, не волнуйтесь.
Если надо передать данные в этот поток, то можно сделать так:
1
|
2 / 2 / 0
Регистрация: 04.04.2011
Сообщений: 160
|
|
19.09.2011, 17:44 [ТС] | 10 |
0
|
![]() 17202 / 12656 / 3321
Регистрация: 17.09.2011
Сообщений: 20,932
|
||||||||||||||||
19.09.2011, 17:52 | 11 | |||||||||||||||
Если про это:
1
|
Заблокирован
|
||||||
19.09.2011, 17:59 | 12 | |||||
Передать данные в поток, как два пальца об асфальт)))
1
|
2 / 2 / 0
Регистрация: 04.04.2011
Сообщений: 160
|
|
19.09.2011, 18:26 [ТС] | 13 |
А можно как-то напрямую сделать? Без var param?
Смысл в чем: данные с трех серверов должны обрабатываться одновременно в разных потоках и быть постоянно доступными для основного потока. Добавлено через 22 минуты Еще где-то слышал, что нужно использовать буфер для каждого сервера. Что скажете по этому поводу?
0
|
19.09.2011, 18:26 | |
Помогаю со студенческими работами здесь
13
Многопоточное Многопоточное скачивание многопоточное вычисление Многопоточное приложение Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |