Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Не могу разобраться с потоками - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Использование стека. Дана строка символов. Проверьте правильность расстановки в ней круглых скобок. http://www.cyberforum.ru/cpp-beginners/thread707818.html
Использую пример программы от сюда: http://www.intuit.ru/department/algorithms/staldata/30/1.html Пример 1. Дана строка символов. Проверьте правильность расстановки в ней круглых скобок. Вот...
C++ Реализовать кольцевой стек. не могу сделать кольцевой стек, помогите или подскажите что можно сделать. #include <iostream> using namespace std; int main() { int val; int last; int const size = 100; http://www.cyberforum.ru/cpp-beginners/thread707770.html
C++ Очередь на основе двусвязного списка
имеется собственный класс двусвязного списка с объектами, считываемыми из бинарного файла, как на его основе организовать очередь, используя контейнер STL <queue>???? Очень нужно, никак не могу...
C++ Циклический сдвиг элементов одномерного массива
доброго времени суток! помогите составить две функции одну для циклического сдвига элементов одномерного массива на К позиций, а вторую вправо! Заранее спасибо!
C++ Структура состоящая из двух дробей и методов работы с ними(сложение, вычитание) http://www.cyberforum.ru/cpp-beginners/thread707704.html
Пишем в Microsoft Visual Studio 2010 -> Win32 Console Application -> C++ Собственно задача такова - создать программу со структурой описывающей несколько дробей и работу с ними.Пока получается...
C++ константы в классах в классе используется константа типа double. Как правильно задать ее? как static const double внутри класса или просто написать определение константы до класса? подробнее

Показать сообщение отдельно
z1p0
0 / 0 / 0
Регистрация: 17.08.2012
Сообщений: 29

Не могу разобраться с потоками - C++

24.11.2012, 20:11. Просмотров 503. Ответов 1
Метки (Все метки)

В общем суть задачи моей такова - есть файл , ну допустим в нем 1000 строк ,и я поставил своей задачей прочесть каждую его строку , после чего создать потоки - и там работать с каждой строкой , выполня над ней операции ...
Вот сам код :
Его примерный вид :

Глобальные переменные :

vector<string> source_list;

volatile LONG pos = 0;

В мэйне :

unsigned int thread_cnt;
cin>>thread_cnt;//Число потоков вводим
vector<HANDLE> threads;
ifstream source("source.txt");
if(!source.is_open())
return 1;
while(getline(source, line))
source_list.push_back(line);
for(unsigned int i = 0; i < thread_cnt; i++)
threads.push_back(reinterpret_cast<HANDLE>(_beginthread(thread_proc, 0, NULL)));//Создаем потоки
WaitForMultipleObjects(threads.size(), &threads[0], TRUE, INFINITE);

Вот сама функция потока :

void thread_proc(void * arg)
{
while(1){

unsigned int i = InterlockedIncrement(&pos);

...

if(i > source_list.size())
break;

...

}
}

И почему то например , если в файлике у меня 25 строк , и я ставлю 5 потоков - то при работе в потоковой функции , не происходит работы со всеми 25 строками !Подскажите , в чем быть может проблема ???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru