Updates to Semaphor

This commit is contained in:
S170H
2024-01-22 23:26:29 +01:00
parent fcdc4d17c1
commit 4dc0ae5e98
7 changed files with 9 additions and 5 deletions

View File

@@ -9,6 +9,7 @@ using namespace std;
// Thread T1 - Schreibt alle Kleinbuchstaben des Alphabets // Thread T1 - Schreibt alle Kleinbuchstaben des Alphabets
void thread1() void thread1()
{ {
cout << "T1: ";
for (char c = 'a'; c <= 'z'; ++c) for (char c = 'a'; c <= 'z'; ++c)
{ {
cout << c << ' '; cout << c << ' ';
@@ -19,6 +20,7 @@ void thread1()
// Thread T2 - Schreibt alle natürlichen Zahlen von 0 bis 32 // Thread T2 - Schreibt alle natürlichen Zahlen von 0 bis 32
void thread2() void thread2()
{ {
cout << "T2: ";
for (int i = 0; i <= 32; ++i) for (int i = 0; i <= 32; ++i)
{ {
cout << i << ' '; cout << i << ' ';
@@ -29,6 +31,7 @@ void thread2()
// Thread T3 - Schreibt alle Großbuchstaben des Alphabets // Thread T3 - Schreibt alle Großbuchstaben des Alphabets
void thread3() void thread3()
{ {
cout << "T3: ";
for (char c = 'A'; c <= 'Z'; ++c) for (char c = 'A'; c <= 'Z'; ++c)
{ {
cout << c << ' '; cout << c << ' ';
@@ -54,7 +57,7 @@ mutex mtx;
void mutexThread1() void mutexThread1()
{ {
mtx.lock(); mtx.lock();
cout << "T1: ";
for (char ch = 'a'; ch <= 'z'; ch++) for (char ch = 'a'; ch <= 'z'; ch++)
{ {
cout << ch << " "; cout << ch << " ";
@@ -68,7 +71,7 @@ void mutexThread2()
{ {
mtx.lock(); mtx.lock();
cout << "T2: ";
for (int i = 0; i < 33; i++) for (int i = 0; i < 33; i++)
{ {
cout << i << " "; cout << i << " ";
@@ -81,7 +84,7 @@ void mutexThread2()
void mutexThread3() void mutexThread3()
{ {
mtx.lock(); mtx.lock();
cout << "T3: ";
for (char ch = 'A'; ch <= 'Z'; ch++) for (char ch = 'A'; ch <= 'Z'; ch++)
{ {
cout << ch << " "; cout << ch << " ";
@@ -106,6 +109,7 @@ Semaphor semaphor(1);
void semaphoreThread1() void semaphoreThread1()
{ {
semaphor.acquire(); semaphor.acquire();
cout << "T1: ";
for (char ch = 'a'; ch <= 'z'; ch++) for (char ch = 'a'; ch <= 'z'; ch++)
{ {
cout << ch << " "; cout << ch << " ";
@@ -117,6 +121,7 @@ void semaphoreThread1()
void semaphoreThread2() void semaphoreThread2()
{ {
semaphor.acquire(); semaphor.acquire();
cout << "T2: ";
for (int i = 0; i < 33; i++) for (int i = 0; i < 33; i++)
{ {
cout << i << " "; cout << i << " ";
@@ -128,6 +133,7 @@ void semaphoreThread2()
void semaphoreThread3() void semaphoreThread3()
{ {
semaphor.acquire(); semaphor.acquire();
cout << "T3: ";
for (char ch = 'A'; ch <= 'Z'; ch++) for (char ch = 'A'; ch <= 'Z'; ch++)
{ {
cout << ch << " "; cout << ch << " ";
@@ -148,7 +154,6 @@ void semaphore_init()
int main() int main()
{ {
cout << "Asynch" << endl; cout << "Asynch" << endl;
asynch_init(); asynch_init();

View File

@@ -8,7 +8,6 @@ private:
int count; int count;
std::mutex mtx; std::mutex mtx;
std::condition_variable cond; std::condition_variable cond;
std::queue<std::thread::id> wait_queue; // Beispielhafte Warteschlange
public: public:
Semaphor(int i) : count(i) {} Semaphor(int i) : count(i) {}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.