12 / 11 / 7
Регистрация: 19.04.2016
Сообщений: 201
|
||||||
1 | ||||||
Проверка существования потока20.04.2016, 19:25. Показов 2691. Ответов 10
Метки нет (Все метки)
Пытаюсь сделать динамическое создание нескольких потоков. Суть вот в чем. Программе дается задача, задача направляется в поток. ВОЗМОЖНО, программа может сразу получить еще, еще, и еще одну такую же задачу, но уже с другими параметрами. Если ставить в очередь, то будет долго. Почитал как сделать динамическое создание потоков, но не совсем понимаю как реализовать само создание. В смысле как проверить условие существование какого - то потока, что бы создать его копию с другими параметрами?
Создаю так (Исправьте пожалуйста, если можно, если у меня не правильно):
0
|
20.04.2016, 19:25 | |
Ответы с готовыми решениями:
10
Проверка существования файла Проверка на существования файлов Проверка существования процесса Проверка существования файла |
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
20.04.2016, 20:16 | 2 |
0
|
12 / 11 / 7
Регистрация: 19.04.2016
Сообщений: 201
|
|
20.04.2016, 20:24 [ТС] | 3 |
Крайнее число, сомневаюсь что потоков может быть больше 5, потому что первый отработает быстрее чем пользователь успеет создать 6-й. Просто взял с запасом
0
|
Пишу на Delphi...иногда
|
||||||
20.04.2016, 20:31 | 4 | |||||
Сообщение было отмечено Ранши как решение
Решение
не совсем ясна цель сего действа, обычно создается некоторое количество потоков, выполняющих определенную задачу (в данном случае задача однотипная, исходные данные различны, число доп. потоков - 11), по окончанию работы какого-то потока проверяется не наличие работающих потоков, а наличие необработанных данных и если такие имеются, то создают еще экземпляр потока, придерживаясь заданного числа работающих потоков как-то так:
1
|
12 / 11 / 7
Регистрация: 19.04.2016
Сообщений: 201
|
|
20.04.2016, 20:36 [ТС] | 5 |
То что надо) Большое вам спасибо!
0
|
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
20.04.2016, 20:40 | 6 |
Их может быть и больше, но стремиться следует к кол-ву одновременно работающих потоков, равному кол-ву физических либо виртуальных ядер CPU.
Без очереди не обойтись, если макс.кол-во одновременно работающих потоков фиксировано (и это нормально), а кол-во распределяемых между ними задач не ограничено.
0
|
12 / 11 / 7
Регистрация: 19.04.2016
Сообщений: 201
|
|
21.04.2016, 00:44 [ТС] | 7 |
Обязательно учту это в будущем.
Добавлено через 46 минут Эмм.. а почему когда запускаешь программу в дебаггере, то возникает ошибка "Процесс не может получить доступ к файлу так как файл занят другим процессом" ? А если ее запустить просто, то все отлично работает... Не сталкивался с таким
0
|
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
21.04.2016, 08:15 | 8 |
Все что угодно может быть
0
|
12 / 11 / 7
Регистрация: 19.04.2016
Сообщений: 201
|
|
21.04.2016, 08:41 [ТС] | 9 |
Дело в том, что этот файл моей программы, ни кто другой к нему в принципе обращаться не может. Unlocker тоже не показывает ни каких дискрипторов ведущих к файлу, ProcMonitor тоже не показывает. Однако, когда программа пытается его открыть на чтение то выдается такая ошибка. Ни как не пойму в чем дело.
0
|
12 / 11 / 7
Регистрация: 19.04.2016
Сообщений: 201
|
|
21.04.2016, 09:29 [ТС] | 11 |
Спасибо, буду искать ошибку)
PS. Стыдно
0
|
21.04.2016, 09:29 | |
21.04.2016, 09:29 | |
Помогаю со студенческими работами здесь
11
Проверка на существования файла Проверка существования записи Работа с реестром. Проверка на существования Проверка существования ПК в локальной сети Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |