0 / 0 / 0
Регистрация: 08.12.2008
Сообщений: 27
|
||||||
1 | ||||||
Многопоточность28.01.2009, 17:31. Просмотров 2394. Ответов 6
Метки нет Все метки)
(
Есть такая трудность:
2 потока, первый считает, а второй каждом 10мс такте пишет в базу данных то что посчитал первый. делаю так:
З.Ы. я понимаю что мой подход в корне не верный и надо использовать объекты синхронизации, но почитав при них чё то ничё не нашёл ПОМОГИТЕ ПЛИИИЗ!!! ![]()
0
|
|
28.01.2009, 17:31 | |
Многопоточность Многопоточность Многопоточность C++ Многопоточность
__________________
6
Помогаю в написании студенческих работ здесь. Записывайтесь на профессиональные курсы C++ разработчиков |
|
Администратор
79877 / 48440 / 244
Регистрация: 10.04.2006
Сообщений: 13,126
|
|
28.01.2009, 17:37 | 2 |
Потому что потоки у вас не синхронизированы.
Вообще, при такой реализации, многопоточность не имеет смысла. Почему бы вместо запуска второго потока не вызвать обычную функцию? Добавлено через 3 минуты 45 секунд http://www.cyberguru.ru/progra... intro.html
0
|
0 / 0 / 0
Регистрация: 08.12.2008
Сообщений: 27
|
|
28.01.2009, 18:22 [ТС] | 3 |
я прочитал то что вы мне указали но не могу понять какая мне от этого польза в конкретном примере у меня первый поток не останавливаясь считает время на 1 ядре процессора ,а второй просто должен запускаться раз в 10 милисекунд и писать информацию а бд при этом счёт времени ведёт 1 поток так как его вычисления ведуться в реальном времени
0
|
Администратор
79877 / 48440 / 244
Регистрация: 10.04.2006
Сообщений: 13,126
|
|
28.01.2009, 18:55 | 4 |
Выложите код метода второго потока.
Добавлено через 9 минут 53 секунды Вы хотели узнать о синхронизации потоков? Вот оно вам.
0
|
0 / 0 / 0
Регистрация: 08.12.2008
Сообщений: 27
|
|
29.01.2009, 00:09 [ТС] | 5 |
прошу прощения что долго не отвечал!
да не имеет значения просто для простоты можно потоково выкидывать номер такта в файл моя задача научиться приостанавливать поток так что бы он жестко прописывал каждый такт при этом потоки работают на разных ядрах проца или на разных логических процах (Hyper Threading) это делается потому что у меня тамер грузит один проц под максимум на 100 % и второму потоку не выделяется процессорного времени другой таймер использовать не могу не хватает точности счёта времени к тому же на первом проце крутиться ещё 17 математических функций по численному интегрированию и я просто не успеваю
0
|
Администратор
79877 / 48440 / 244
Регистрация: 10.04.2006
Сообщений: 13,126
|
|
29.01.2009, 10:35 | 6 |
Многовато для таймера, не задумывались?
Если второй поток заводится только по этой причине, то это бред. В той реализации, что у вас, вы вновь запускаете второй поток и тут же, не беспокоясь о том, отработал он или нет, приостанавливаете его. Советую еще раз перечитать указанную статью. Там есть все, что вам нужно.
0
|
0 / 0 / 0
Регистрация: 08.12.2008
Сообщений: 27
|
|||||||||||
29.01.2009, 17:07 [ТС] | 7 | ||||||||||
То что я делал не правильно я это понимаю прекрасно. Я с многопоточностью столкнулся первый раз поэтому могу тупить и задавать глупые вопросы.
А если по делу попробовал создавать событие CreateEvent:
Но в такой реализации ResetEvent() устанавливает несигнальное состояние и всё т.е. SetEvent не срабатывает.
0
|
29.01.2009, 17:07 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь. Многопоточность всокетах CppWebBrowser и Многопоточность Многопоточность и IdHTTP THREAD.H (многопоточность) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |