Рассмотрим следующую примерную программу, в которой работает цикл;C++ thread concept
int main()
{
for (int i = 0; i<= 300; ++i) {
}
}
Довольно простой, теперь давайте предположим, что я хочу, чтобы распечатать значение i
каждый второй:
cout << "i= " << i << "\n";
Простой цикл, как следующий может быть достаточно, где «elaspedTime» является вымышленной целое число, содержащее количество секунд программа работает волшебно обновляется ОС:
int lastTime = 0;
while (true) {
if (elapsedTime > lastTime) { // Another second has passed
cout << "i= " << "\n";
lastTime = elapsedTime;
}
}
конечная цель здесь, чтобы дать выход вроде следующего (Ассу мина петля побежал ровно 100 раз в секунду, потому что это было на старом, медленном CPU):
$ ./myprog
i= 100
i= 200
i= 300
Эти простые функции и процедуры, несмотря на это, я не вижу никакой возможности выполнить такую операцию в «классической «C++-программа, которая обычно имеет только функцию main()
. Несмотря на простоту, это тот момент, когда мне нужно изучить многопоточность? Или, возможно ли вызывать функции от main()
и не дожидаться их возврата, но без этой вызываемой функции «hogging» поток?
Мне что-то не хватает. Я не понимаю, как это связано с потоками. Похоже, вам просто нужна функция «сна» (если, конечно, другая обработка занимает значительное время, и в этом случае вам понадобятся функции времени, чтобы выяснить, как долго спать и т. Д.) –
Вам не требуется многопоточность Вот. Когда вам понадобится многопоточность, вы это узнаете. –
Извините, мне показалось, что я понял, что хочу, чтобы все это происходило одновременно с 'main()'. Это, по существу, две петли, работающие независимо друг от друга, одна распечатывает результаты другой. Это ясно? – jwbensley