powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Запуск потока из потока
11 сообщений из 11, страница 1 из 1
Запуск потока из потока
    #34068344
MaximZaikin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день. Такой вопрос есть приложение которое по старту создает поток в этом потоке крутится цикл слушает порт. Я хочу что бы в момент когда на порт кто то попадал стартовал еще один поток в котором будет идти обработка клиента.

Смысл примерно такой по нажатию на кнопу стартует поток который слушает порт. Это работает. Функция серверного потока кстати объявлена как static DWORD WINAPI и клиентского так же. Так вот из основного потока клиентская стартовать не хочет либо не компилится либо вылетает с треском.
Помогите плиз )))
...
Рейтинг: 0 / 0
Запуск потока из потока
    #34068424
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У вас ошибка в пятнадцатой строке.
...
Рейтинг: 0 / 0
Запуск потока из потока
    #34068436
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не об ошибке, а так немного оффтопа:
я так тоже пробовал, но логика эта очень порочная, имхо, и я от нее отказался. К примеру, если будет большое количество присланных данных от разных источников на этот порт, что, в свою очередь, порадит кучу новых потоков, уследить за которыми и их взаимодействием та еще головная боль, но автору виднее...
--------------------------------------------------------------
[подпись с другого сайта]
...
Рейтинг: 0 / 0
Запуск потока из потока
    #34068595
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cerebrumне об ошибке, а так немного оффтопа:
я так тоже пробовал, но логика эта очень порочная, имхо, и я от нее отказался. К примеру, если будет большое количество присланных данных от разных источников на этот порт, что, в свою очередь, порадит кучу новых потоков, уследить за которыми и их взаимодействием та еще головная боль, но автору виднее...

Согласен, но по другой причине. Количество потоков надо или ограничивать, или делать статичным, т.к. на расходы ресурсов синхронизации будет уходить неконтраллируемое, и возрастаемое в прогрессии время.
...
Рейтинг: 0 / 0
Запуск потока из потока
    #34068605
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaximZaikinТак вот из основного потока клиентская стартовать не хочет либо не компилится либо вылетает с треском.

Типа, "я пробовал, как попало, помогите". Значит, почитайте про потоки, что вам еще посоветовать?
...
Рейтинг: 0 / 0
Запуск потока из потока
    #34068624
MaximZaikin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По части большого колличества потоков и трудностью за ними уследить, я тоже об этом думал и думаю решить это связными списками + сервисом который будет шнырять туда сюда и грохать не угодные.
...
Рейтинг: 0 / 0
Запуск потока из потока
    #34068646
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaximZaikinПо части большого колличества потоков и трудностью за ними уследить, я тоже об этом думал и думаю решить это связными списками + сервисом который будет шнырять туда сюда и грохать не угодные.

А не лучше, передовать данные о коннекте одному потоку? Или сделать 2: приемщик/передатчик и обратчик?
...
Рейтинг: 0 / 0
Запуск потока из потока
    #34069012
nts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nts
Гость
MaximZaikinПо части большого колличества потоков и трудностью за ними уследить, я тоже об этом думал и думаю решить это связными списками + сервисом который будет шнырять туда сюда и грохать не угодные.
Я когда то тоже пытался сделать через списки, хранил в них не только хэндлы тредов и клиентские сокеты, но и внутреннее состояние тредов, чтобы корректно их погасить на любом этапе. Геморрой с синхронизацией тот еще. При небольшом количестве тредов это хорошо работает, а при большом лучше пересмотреть архитектуру и отказаться от концепции каждому клиенту - по треду :).
...
Рейтинг: 0 / 0
Запуск потока из потока
    #34069093
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ntsЯ когда то тоже пытался сделать через списки, хранил в них не только хэндлы тредов и клиентские сокеты, но и внутреннее состояние тредов, чтобы корректно их погасить на любом этапе. Геморрой с синхронизацией тот еще. При небольшом количестве тредов это хорошо работает, а при большом лучше пересмотреть архитектуру и отказаться от концепции каждому клиенту - по треду :).

При правельном построении гемороя должно не быть, а должны быть тормоза. :)
...
Рейтинг: 0 / 0
Запуск потока из потока
    #34069231
nts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nts
Гость
Было и то и то :) сначала геморой, потом тормоза
...
Рейтинг: 0 / 0
Запуск потока из потока
    #34069924
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ntsБыло и то и то :) сначала геморой, потом тормоза

В болшенстве случаев причин гемороя всего 2.

1. Забыли изменить значение семафора в нужном месте.
2. Проверка занчения семафора и его установка
производятся за 2 операции, а не за одну.

А причина тормозов - параноидальное блокирование обьектов.

Попробую дать свой рецепт по этому поводу.

Делается класс управляющий блокировками на чтение и на запись.

1.при установке блокировки на чтение, могут чтать все, никто не может писать.
2. при установке блокировки на запись, пишет одни, никто не читает.

У меня такой подход занимет 3 семафора.

Все классы реализующие бизнес логику наследуются от класса блокировок
и в нужных местах методов вызываются
методы класса управляющего блокировками для устанавки и снятия необходимых типов блокировок на обьект.

Это тот случай где очень полезной фичей есть виртуальное наследование
когда для всей иерархии существует всего один обьект управляющий блокировками.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Запуск потока из потока
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]