|
|
|
Запуск потока из потока
|
|||
|---|---|---|---|
|
#18+
Добрый день. Такой вопрос есть приложение которое по старту создает поток в этом потоке крутится цикл слушает порт. Я хочу что бы в момент когда на порт кто то попадал стартовал еще один поток в котором будет идти обработка клиента. Смысл примерно такой по нажатию на кнопу стартует поток который слушает порт. Это работает. Функция серверного потока кстати объявлена как static DWORD WINAPI и клиентского так же. Так вот из основного потока клиентская стартовать не хочет либо не компилится либо вылетает с треском. Помогите плиз ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2006, 06:45 |
|
||
|
Запуск потока из потока
|
|||
|---|---|---|---|
|
#18+
У вас ошибка в пятнадцатой строке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2006, 08:19 |
|
||
|
Запуск потока из потока
|
|||
|---|---|---|---|
|
#18+
не об ошибке, а так немного оффтопа: я так тоже пробовал, но логика эта очень порочная, имхо, и я от нее отказался. К примеру, если будет большое количество присланных данных от разных источников на этот порт, что, в свою очередь, порадит кучу новых потоков, уследить за которыми и их взаимодействием та еще головная боль, но автору виднее... -------------------------------------------------------------- [подпись с другого сайта] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2006, 08:30 |
|
||
|
Запуск потока из потока
|
|||
|---|---|---|---|
|
#18+
Cerebrumне об ошибке, а так немного оффтопа: я так тоже пробовал, но логика эта очень порочная, имхо, и я от нее отказался. К примеру, если будет большое количество присланных данных от разных источников на этот порт, что, в свою очередь, порадит кучу новых потоков, уследить за которыми и их взаимодействием та еще головная боль, но автору виднее... Согласен, но по другой причине. Количество потоков надо или ограничивать, или делать статичным, т.к. на расходы ресурсов синхронизации будет уходить неконтраллируемое, и возрастаемое в прогрессии время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2006, 09:53 |
|
||
|
Запуск потока из потока
|
|||
|---|---|---|---|
|
#18+
MaximZaikinТак вот из основного потока клиентская стартовать не хочет либо не компилится либо вылетает с треском. Типа, "я пробовал, как попало, помогите". Значит, почитайте про потоки, что вам еще посоветовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2006, 09:54 |
|
||
|
Запуск потока из потока
|
|||
|---|---|---|---|
|
#18+
По части большого колличества потоков и трудностью за ними уследить, я тоже об этом думал и думаю решить это связными списками + сервисом который будет шнырять туда сюда и грохать не угодные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2006, 10:02 |
|
||
|
Запуск потока из потока
|
|||
|---|---|---|---|
|
#18+
MaximZaikinПо части большого колличества потоков и трудностью за ними уследить, я тоже об этом думал и думаю решить это связными списками + сервисом который будет шнырять туда сюда и грохать не угодные. А не лучше, передовать данные о коннекте одному потоку? Или сделать 2: приемщик/передатчик и обратчик? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2006, 10:10 |
|
||
|
Запуск потока из потока
|
|||
|---|---|---|---|
|
#18+
MaximZaikinПо части большого колличества потоков и трудностью за ними уследить, я тоже об этом думал и думаю решить это связными списками + сервисом который будет шнырять туда сюда и грохать не угодные. Я когда то тоже пытался сделать через списки, хранил в них не только хэндлы тредов и клиентские сокеты, но и внутреннее состояние тредов, чтобы корректно их погасить на любом этапе. Геморрой с синхронизацией тот еще. При небольшом количестве тредов это хорошо работает, а при большом лучше пересмотреть архитектуру и отказаться от концепции каждому клиенту - по треду :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2006, 11:33 |
|
||
|
Запуск потока из потока
|
|||
|---|---|---|---|
|
#18+
ntsЯ когда то тоже пытался сделать через списки, хранил в них не только хэндлы тредов и клиентские сокеты, но и внутреннее состояние тредов, чтобы корректно их погасить на любом этапе. Геморрой с синхронизацией тот еще. При небольшом количестве тредов это хорошо работает, а при большом лучше пересмотреть архитектуру и отказаться от концепции каждому клиенту - по треду :). При правельном построении гемороя должно не быть, а должны быть тормоза. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2006, 11:44 |
|
||
|
Запуск потока из потока
|
|||
|---|---|---|---|
|
#18+
Было и то и то :) сначала геморой, потом тормоза ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2006, 12:10 |
|
||
|
Запуск потока из потока
|
|||
|---|---|---|---|
|
#18+
ntsБыло и то и то :) сначала геморой, потом тормоза В болшенстве случаев причин гемороя всего 2. 1. Забыли изменить значение семафора в нужном месте. 2. Проверка занчения семафора и его установка производятся за 2 операции, а не за одну. А причина тормозов - параноидальное блокирование обьектов. Попробую дать свой рецепт по этому поводу. Делается класс управляющий блокировками на чтение и на запись. 1.при установке блокировки на чтение, могут чтать все, никто не может писать. 2. при установке блокировки на запись, пишет одни, никто не читает. У меня такой подход занимет 3 семафора. Все классы реализующие бизнес логику наследуются от класса блокировок и в нужных местах методов вызываются методы класса управляющего блокировками для устанавки и снятия необходимых типов блокировок на обьект. Это тот случай где очень полезной фичей есть виртуальное наследование когда для всей иерархии существует всего один обьект управляющий блокировками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2006, 14:24 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=328&tid=2030233]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
330ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 659ms |

| 0 / 0 |
