What would pseudocode look like for the following C++ application? C++ source code: #include <iostream> #include <thread> #include <mutex>   using namespace std;   // Define global mutex std::mutex mutex1;   // Define countUp() function void countUp() {        for(int i = 1; i <= 20; ++i) {              // Lock mutex to protect shared resources              std::lock_guard<std::mutex> lock(mutex1);              // Print count              std::cout << "Thread 1: Counting up -- " << i << std::endl;              // Sleeping thread for a duration               std::this_thread::sleep_for(std::chrono::milliseconds(400));        } }   // Define countDown() function void countDown() {        for(int i = 20; i >= 0; --i) {              // Lock mutex to protect shared resources              std::lock_guard<std::mutex> lock(mutex1);              // Print count              std::cout << "Thread 2: Counting down -- " << i << std::endl;              // Sleeping thread for a duration               std::this_thread::sleep_for(std::chrono::milliseconds(400));        } }   // Main() function int main() {        // Creating thread1 for countUp and joining it        std::thread thread1(countUp);        thread1.join();        // Creating thread2 for countDown and joining it        std::thread thread2(countDown);        thread2.join();          return 0; }

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

What would pseudocode look like for the following C++ application?

C++ source code:

#include <iostream>

#include <thread>

#include <mutex>

 

using namespace std;

 

// Define global mutex

std::mutex mutex1;

 

// Define countUp() function

void countUp() {

       for(int i = 1; i <= 20; ++i) {

             // Lock mutex to protect shared resources

             std::lock_guard<std::mutex> lock(mutex1);

             // Print count

             std::cout << "Thread 1: Counting up -- " << i << std::endl;

             // Sleeping thread for a duration

              std::this_thread::sleep_for(std::chrono::milliseconds(400));

       }

}

 

// Define countDown() function

void countDown() {

       for(int i = 20; i >= 0; --i) {

             // Lock mutex to protect shared resources

             std::lock_guard<std::mutex> lock(mutex1);

             // Print count

             std::cout << "Thread 2: Counting down -- " << i << std::endl;

             // Sleeping thread for a duration

              std::this_thread::sleep_for(std::chrono::milliseconds(400));

       }

}

 

// Main() function

int main() {

       // Creating thread1 for countUp and joining it

       std::thread thread1(countUp);

       thread1.join();

       // Creating thread2 for countDown and joining it

       std::thread thread2(countDown);

       thread2.join();

 

       return 0;

}

 

 

AI-Generated Solution
AI-generated content may present inaccurate or offensive content that does not represent bartleby’s views.
steps

Unlock instant AI solutions

Tap the button
to generate a solution

Knowledge Booster
Avoiding deadlock
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education