Giriş
get_id metodu
std::thread::id tipindendir. get_id() ile dönen sayı Linux'ta suni bir sayıdır. Şöyle alırız.
auto myid = this_thread.get_id();
stringstream ss;
ss << myid;
string mystring = ss.str();
sleep_for metodu - milisecond
Eskiden sleep metodu yoktu ve bu metod ile sıkıntı halloldu. Açıklaması şöyle
Şöyle yaparız.
Açıklaması şöyle. Eğer belirtilen süre geçmişte kaldıysa bloke olmaz.
The function sleep is not in the standard C++Bu metod usleep() ile aynı şey. Linux'ta şöyle yaparız
#include<unistd.h>
usleep(500000);
ÖrnekŞöyle yaparız.
std::this_thread::sleep_for(std::chrono::milliseconds(100));
sleep_until metoduAçıklaması şöyle. Eğer belirtilen süre geçmişte kaldıysa bloke olmaz.
5Hz'de periyodik olarak iş yapmak için şöyle yaparız.Blocks the execution of the current thread until specified sleep_time has been reached.
#include <chrono>
#include <iostream>
int main()
{
using clock = std::chrono::steady_clock;
auto next_frame = clock::now();
while(true)
{
next_frame += std::chrono::milliseconds(1000 / 5); // 5Hz
// do stuff
std::cout << std::time(0) << '\n'; // 5 for each second
// wait for end of frame (avoiding spurious wake-up)
while(clock::now() < next_frame)
std::this_thread::sleep_until(next_frame);
}
}
Hiç yorum yok:
Yorum Gönder