blog.monophile.net

コンピュータのこととかのメモ。

Takaaki Yamamoto

東京工業大学において計算機科学と応用数学を学び、 情報科学芸術大学院大学[IAMAS] においてメディア表現を専攻し修了。 現在は digitiminimi Inc. において、インフラエンジニアとして生計をたててている。

work

各種システム構築と管理を承ります。

Cloud PlatformOpenstack, GCP, AWS, Azure, ...
Openstackkeystone, glance, cinder, swift, neutron, nova, ...
VirtualizationQEMU+KVM, LXD/LXC, Docker, ...
OSDebian GNU/Linux, Ubuntu, CentOS, ...
NetworksIPSec, L2TP, VXLAN, WirelessAP, ...
WebAppsWordPress, GitLab, Redmine, ...
Configuration ManagementAnsible, Terraform, ...
MonitoringNagios, Munin, ...

posts

c++でthreadを使う

1秒毎にhelloを出力する

code

 /* periodic.cpp */
#include <iostream>
#include <functional>
#include <chrono>
#include <thread>
using namespace std;
void periodic(function<void(void)> func,unsigned int intervalmils){
    thread([func, intervalmils](){
        while(true){
            func();
            this_thread::sleep_for(chrono::milliseconds(intervalmils));
        }
    }).detach();
}

int main(void){
    periodic([](){ cout << "hello" << endl; } , 1000);
    this_thread::sleep_for(chrono::minutes(1));
    return EXIT_SUCCESS;
}

compile

$ g++ -pthread -std=c++11 -o periodic periodic.cpp

exec

$ ./periodic

すると以下のように1分間だけ“hello”が1秒毎に出力されます。

hello
hello
hello
hello
hello
  :
  :