diff options
| author | crupest <crupest@outlook.com> | 2021-03-17 17:15:19 +0800 | 
|---|---|---|
| committer | crupest <crupest@outlook.com> | 2021-03-17 17:15:19 +0800 | 
| commit | ec72d12002c6d3b707a014645c0da1b397dc7ee4 (patch) | |
| tree | 5b9286f9023308ffe75f1c74bcb59123d49ef797 /works/life/operating-system-challenge/1/main.cpp | |
| parent | f6e6a2d045efe83e8e62ec13d9e5c8a8c1cccd83 (diff) | |
| download | crupest-ec72d12002c6d3b707a014645c0da1b397dc7ee4.tar.gz crupest-ec72d12002c6d3b707a014645c0da1b397dc7ee4.tar.bz2 crupest-ec72d12002c6d3b707a014645c0da1b397dc7ee4.zip | |
import(life): Add OS challenges.
Diffstat (limited to 'works/life/operating-system-challenge/1/main.cpp')
| -rw-r--r-- | works/life/operating-system-challenge/1/main.cpp | 33 | 
1 files changed, 33 insertions, 0 deletions
| diff --git a/works/life/operating-system-challenge/1/main.cpp b/works/life/operating-system-challenge/1/main.cpp new file mode 100644 index 0000000..0f780ef --- /dev/null +++ b/works/life/operating-system-challenge/1/main.cpp @@ -0,0 +1,33 @@ +// Remember not to use O2 optimization!
 +
 +#include <thread>
 +#include <vector>
 +
 +int main() {
 +  std::vector<std::thread> threads;
 +
 +  // Because my CPU has 4-core and 8-threads. I open 8 threads.
 +  for (int i = 0; i < 8; i++) {
 +    std::thread t([] {
 +      int i;
 +      int j;
 +      int k;
 +      double d;
 +      while (true) {
 +        i = i + i;
 +        j = j - j;
 +        k = k * k;
 +        d = d + d;
 +        i = i & i;
 +        j = j | j;
 +      }
 +    });
 +    threads.push_back(std::move(t));
 +  }
 +
 +  for (auto &t : threads) {
 +    t.join();
 +  }
 +
 +  return 0;
 +}
 | 
