1 / 1 / 1
Регистрация: 04.04.2010
Сообщений: 81
|
|
1 | |
Создание потоков.04.08.2010, 12:53. Показов 5843. Ответов 9
Метки нет (Все метки)
Возникла необходимость создать в программе то количество потоков, какое выбрал пользователей.
И запустить их все сразу. Я думаю нужно создать динамический массив из потоков, но как это сделать. Кому не сложно покажите готовый пример или наведите на мысль. P.S: Код во всех потоках будет один и тот же.
0
|
04.08.2010, 12:53 | |
Ответы с готовыми решениями:
9
Создание потоков Создание и завершение процессов и потоков. Приоритеты выполнения потоков Создание потоков Создание потоков |
159 / 156 / 47
Регистрация: 29.04.2009
Сообщений: 636
|
|
04.08.2010, 14:03 | 2 |
в Библиотеках Poco есть ThreadPool одна из сигнатур указывает кол-во потоков и макс кол-во потоков.В linux должно быть что то похожее.
0
|
04.08.2010, 14:27 | 3 |
хз что там есть, но не вижу ни единого смысла таскать с собой стороннюю либу
простите, конечно... но что общего у библиотеки и linux? hromjo, что в коде можно использовать, какие сторонние библиотеки, или ничего стороннего? код должен работать только под линукс, без кроссплатформености?
0
|
1 / 1 / 1
Регистрация: 04.04.2010
Сообщений: 81
|
|
04.08.2010, 16:55 [ТС] | 4 |
Вобще код должен работать под linux, но в будущем возможно возьмусь переносить под окошки.
Мне нужно чтоб всего одна функция работала во много потоках. К примеру есть функция int foo(); и эту функцию необходимо запустить во всех потоках, количество которых ввел юзер. Возможно можно создать динамический массив потоков? Ну или как-то по другому. Потоки должны работать как-то так: inf f00(){код} поток_1 { foo() \\При каком то условии в foo все потоки остановятся... } поток_2 { foo() \\При каком то условии в foo все потоки остановятся... } И так до того количества потоков, сколько захочет пользователь.
0
|
04.08.2010, 17:06 | 5 | |||||
если компилятор не самый старый, то так:
иначе писать обертку, разделяемую препроцессором. или стороннюю либу. потестить можно тут: http://liveworkspace.org/code/... c59294991a Добавлено через 2 минуты потоки не могут останавливаться. это системнозависимо. ты можешь использовать мьютекс. и реализовать функцию foo() так, чтоб она проверяла общий мьютекс.
1
|
1 / 1 / 1
Регистрация: 04.04.2010
Сообщений: 81
|
|
04.08.2010, 21:12 [ТС] | 6 |
Большое спасибо!
Добавлено через 3 часа 28 минут Тогда можно еще вопрос по этому поводу. При компиляции программы выводится ошибка: /usr/include/c++/4.4/c++0x_warning.h:31:2: error: #error This file requires compiler and library support for the upcoming ISO C++ standard, C++0x. This support is currently experimental, and must be enabled with the -std=c++0x or -std=gnu++0x compiler options. Хотя компилятор сказал вполне много, у меня все же не получается подключить -std=c++0x, если честно я не знаю как Пользуюсь NetBeans, нашел во вкладке Make Option, не знаю, то ли. Но при вводе в поле -std=c++0x пишет что вобще что то там не правильно объявил. Как я понимаю нужно как-то подключить это в makefile, но не нашел как. Возможно задача тривиальная, но как сказал в инете это не нашел, да и инфы на c++0x не так уж много. Прошу знающих людей объяснить что к чему. А и еще забыл сказать, компилятор g++ 4.4.3, если это поможет.
0
|
1 / 1 / 1
Регистрация: 04.04.2010
Сообщений: 81
|
|
04.08.2010, 21:55 [ТС] | 8 |
NetBeans - это IDE.
0
|
22.08.2010, 10:50 | 10 |
http://man.yolinux.com/cgi-bin... ead_create
Можете создавать поток этой функцией, она не требует нового стандарта С++. Описание и инклуд по ссылке. По поводу Код
СС="gcc -std=c++0x"
0
|
22.08.2010, 10:50 | |
22.08.2010, 10:50 | |
Помогаю со студенческими работами здесь
10
Создание потоков Создание потоков Создание потоков Создание потоков Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |