0 / 0 / 0
Регистрация: 17.08.2012
Сообщений: 29
|
|
1 | |
Не могу разобраться с потоками24.11.2012, 20:11. Показов 1177. Ответов 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
|
24.11.2012, 20:11 | |
Ответы с готовыми решениями:
1
Не могу разобраться с С++ не могу разобраться.. не могу разобраться со switch. Не могу разобраться с файлами |
24.11.2012, 22:38 | 2 | |||||
Сообщение было отмечено z1p0 как решение
Решение
может надо целиком залочить строчку
0
|
24.11.2012, 22:38 | |
24.11.2012, 22:38 | |
Помогаю со студенческими работами здесь
2
Не могу разобраться с 2D игрой Не могу разобраться с классами Не могу разобраться с указателями! С циклом for не могу разобраться Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |