Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/29: Рейтинг темы: голосов - 29, средняя оценка - 4.66
7 / 7 / 3
Регистрация: 23.12.2014
Сообщений: 94

Посчитать количество потоков в процессе

27.09.2016, 12:59. Показов 6177. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Потоки создаются рекурсивно в очень большом количестве, хотелось бы посчитать их количество, пробовал чтоб при создании они прибавляли 1 к глобальной переменно, но это не очень точный способ как оказывается и могут возникнуть проблемы с памятью, и еще один вопрос как узнать сколько всего потоков запущенно во всей системе и какое может быть максимальное количество
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.09.2016, 12:59
Ответы с готовыми решениями:

Как узнать количество потоков в процессе?
Цель стоит: написать программу с информацией о процессах...Список процессов выявил через EnumProcesses,OpenProcess,GetModuleBaseName,...

Как на лету менять количество потоков в winapi?
Как на лету менить количество потоков в winapi? тоесть например программа работает, тут бах - захотелось увеличить количесво потоков - но...

Используя распараллеливание потоков найти количество цифр, входящих в заданную строку
Используя распараллеливания потоков найти количество цифр, входящих в заданную строку. Я говорил с преподавателем он сказал разбить строку...

6
232 / 135 / 19
Регистрация: 10.11.2015
Сообщений: 305
27.09.2016, 14:03
Цитата Сообщение от BlackOwl Посмотреть сообщение
могут возникнуть проблемы с памятью
Имеется ввиду проблема атомарного доступа? Поставте перед переменной ключевое слово volatile, оно укажет компилятору, что нельзя оптимизировать доступ к этой переменной. Плюс, еще, при модификации используйте функции InterlockedIncrement/InterlockedDecrement, тогда не будет проблем на многопроцессорных системах.

Цитата Сообщение от BlackOwl Посмотреть сообщение
как узнать сколько всего потоков запущенно во всей системе
Все потоки можно перечислить посредством CreateToolhelp32Snapshot(TH32CS_SNAPTHRE AD)/Thread32First/Thread32Next

Цитата Сообщение от BlackOwl Посмотреть сообщение
какое может быть максимальное количество
На сколько хватит ресурсов, каждому потоку выделяется память под стек, TEB и т.д.
2
7 / 7 / 3
Регистрация: 23.12.2014
Сообщений: 94
27.09.2016, 16:17  [ТС]
jupman,
Цитата Сообщение от jupman Посмотреть сообщение
Все потоки можно перечислить посредством CreateToolhelp32Snapshot(TH32CS_SNAPTHRE AD)/Thread32First/Thread32Next
как получить потоки только одного процесса? Делаю так
C++
1
CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, GetCurrentThreadId());
перебираю все через Thread32First/Thread32Next, но получаю количество вообще всех потоков в системе
0
232 / 135 / 19
Регистрация: 10.11.2015
Сообщений: 305
27.09.2016, 16:56
BlackOwl, для TH32CS_SNAPTHREAD параметр th32ProcessID игнорируется. Чтобы определить потоки конкретного процесса проверяй поле th32OwnerProcessID в структуре THREADENTRY32.
0
7 / 7 / 3
Регистрация: 23.12.2014
Сообщений: 94
27.09.2016, 18:58  [ТС]
jupman, можно еще по подробнее узнать о
Цитата Сообщение от jupman Посмотреть сообщение
каждому потоку выделяется память под стек, TEB и т.д.
и как это рассчитать
0
232 / 135 / 19
Регистрация: 10.11.2015
Сообщений: 305
28.09.2016, 07:17
BlackOwl, основным ограничителем является стек. Хорошая статья по теме: Преодолевая границы Windows: процессы и потоки

Добавлено через 10 минут
BlackOwl, а вообще, зачем тебе создавать много потоков? Если делаешь сервер, модель которого по потоку на клиента, то это не удачная стратегия. Рекомендую почитать про порты завершения.
1
7 / 7 / 3
Регистрация: 23.12.2014
Сообщений: 94
28.09.2016, 19:31  [ТС]
jupman, это далеко не сервер, а потоки нужны для скорости
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.09.2016, 19:31
Помогаю со студенческими работами здесь

Область видимости общей переменной для потоков + закрытие потоков
Есть два вопроса про потоки. Первый. Как можно сделать общую переменную для основного потока и моих ? struct ThreadInfo1 { int...

Как определить количество потоков в процессе?
В мом приложении куча потоков. Могу ли я как-то определить их хендлы и общее количество (например, что-то типа FindWindows +...

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

Вычислите количество газа, учавствующего в данном процессе.
При температуре 300К двухатомный идеальный газ изотермически обратимо расширяется от 0,01 м3 до 0,1 м3 при этом поглощается 17,0дж теплоты...

Какое количество теплоты отводится от газа в изохорном процессе?
Тепловая машина работает по циклу, состоящему из изобарного расширения, изохорного охлаждения и адиабатного сжатия. Её рабочим телом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru