7 Ağustos 2017 Pazartesi

synchronized Block

Giriş
C++20 ile geliyor. C++ dilinin gittikçe daha fazla Java'ya benzediğinin ispatı bence :)

Örnek
Şöyle yaparız.
#include <iostream>
#include <vector>
#include <thread>
int f()
{
  static int i = 0;
  synchronized {
    std::cout << i << " -> ";
    ++i;       
    std::cout << i << '\n';
    return i; 
  }
}
int main()
{
  std::vector<std::thread> v(10);
  for(auto& t: v)
    t = std::thread([]{ for(int n = 0; n < 10; ++n) f(); });
  for(auto& t: v)
    t.join();
}

Hiç yorum yok:

Yorum Gönder