From dc1f0c4c0096013799416664894c5194dc7e1f52 Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Fri, 28 Feb 2025 23:13:39 +0800 Subject: chore(store): move everything to store. --- works/life/operating-system-challenge/3/README.md | 5 -- works/life/operating-system-challenge/3/main.cpp | 68 --------------------- .../life/operating-system-challenge/3/problem.jpg | Bin 25702 -> 0 bytes 3 files changed, 73 deletions(-) delete mode 100644 works/life/operating-system-challenge/3/README.md delete mode 100644 works/life/operating-system-challenge/3/main.cpp delete mode 100644 works/life/operating-system-challenge/3/problem.jpg (limited to 'works/life/operating-system-challenge/3') diff --git a/works/life/operating-system-challenge/3/README.md b/works/life/operating-system-challenge/3/README.md deleted file mode 100644 index 63fa023..0000000 --- a/works/life/operating-system-challenge/3/README.md +++ /dev/null @@ -1,5 +0,0 @@ -![problem](problem.jpg) - -Translation: Use a lock to achieve that 3 threads print A, B, C in turn for 10 times. Output is `ABCABC...` - -Code is in `main.cpp`. diff --git a/works/life/operating-system-challenge/3/main.cpp b/works/life/operating-system-challenge/3/main.cpp deleted file mode 100644 index 461c775..0000000 --- a/works/life/operating-system-challenge/3/main.cpp +++ /dev/null @@ -1,68 +0,0 @@ -#include -#include -#include - -int main() { - int turn = 1; - int count = 0; - std::mutex mutex; - - auto thread_proc1 = [&] { - while (true) { - { - std::lock_guard guard(mutex); - if (count >= 10) - break; - if (turn == 1) { - std::cout << "A" << std::endl; - turn = 2; - } - } - - std::this_thread::yield(); - } - }; - - auto thread_proc2 = [&] { - while (true) { - { - std::lock_guard guard(mutex); - if (count >= 10) - break; - if (turn == 2) { - std::cout << "B" << std::endl; - turn = 3; - } - } - - std::this_thread::yield(); - } - }; - - auto thread_proc3 = [&] { - while (true) { - { - std::lock_guard guard(mutex); - if (count >= 10) - break; - if (turn == 3) { - std::cout << "C" << std::endl; - turn = 1; - count++; - } - } - - std::this_thread::yield(); - } - }; - - std::thread thread1(thread_proc1); - std::thread thread2(thread_proc2); - std::thread thread3(thread_proc3); - - thread1.join(); - thread2.join(); - thread3.join(); - - return 0; -} diff --git a/works/life/operating-system-challenge/3/problem.jpg b/works/life/operating-system-challenge/3/problem.jpg deleted file mode 100644 index c3a61b7..0000000 Binary files a/works/life/operating-system-challenge/3/problem.jpg and /dev/null differ -- cgit v1.2.3