Question

In: Computer Science

Write a program (in C, or Java, or C++, or C#) that creates three new threads...

Write a program (in C, or Java, or C++, or C#) that creates three new threads (besides the already existing main thread) and synchronizes them in such a way that each thread displays it's thread id in turn for 5 iterations. The output of the program should look like this:

Thread 1 - iteration no. 1

Thread 2 - iteration no. 1

Thread 3 - iteration no. 1

Thread 1 - iteration no. 2

Thread 2 - iteration no. 2

Thread 3 - iteration no. 2

Thread 1 - iteration no. 3

Thread 2 - iteration no. 3

Thread 3 - iteration no. 3

Thread 1 - iteration no. 4

Thread 2 - iteration no. 4

Thread 3 - iteration no. 4

Thread 1 - iteration no. 5

Thread 2 - iteration no. 5

Thread 3 - iteration no. 5

Solutions

Expert Solution

PLEASE GIVE IT A THUMBS UP, I SERIOUSLY NEED ONE, IF YOU NEED ANY MODIFICATION THEN LET ME KNOW, I WILL DO IT FOR YOU

class SynchronizeThreads {
  private static int thread_num = 1;

  private static int iter_num = 1;

  public static void main(String[] args) throws InterruptedException {
    Thread[] pthreads = new Thread[3];

    for (int thread_index = 0; thread_index < pthreads.length; thread_index++) {
      int threadId = thread_index + 1;

      pthreads[thread_index] =
        new Thread(
          new Runnable() {

            @Override
            public void run() {
              while (true) {
                synchronized (this) {
                  if (thread_num == threadId && iter_num <= 5) {
                    System.out.println(
                      "Thread " + thread_num + " - iteration no. " + iter_num
                    );

                    System.out.println("");

                    thread_num++;

                    if (threadId == pthreads.length) {
                      iter_num++;

                      thread_num = 1;
                    }
                  }
                  if (iter_num == 6) {
                    break;
                  }
                }
              }
            }
          }
        );

      pthreads[thread_index].start();
    }

    for (int thread_index = 0; thread_index < pthreads.length; thread_index++) {
      pthreads[thread_index].join();
    }
  }
}

Related Solutions

Write a C program that creates 5 threads sends the thread index as an argument to...
Write a C program that creates 5 threads sends the thread index as an argument to the thread execution procedure/function. Also, the main process/thread joins the newly created threads sequentially one after the other. From the thread procedure print “I am a thread and my index is “ [print the correct index number]. From the main thread after the join print “I am the main thread and just completed joining thread index “ [print the correct index].
DO THIS IN JAVA Write a complete Java program. the program has two threads. One thread...
DO THIS IN JAVA Write a complete Java program. the program has two threads. One thread prints all capital letters 'A' to'Z'. The other thread prints all odd numbers from 1 to 21.
Write a Java program that creates a three-dimensional array. Populate each element with a string that...
Write a Java program that creates a three-dimensional array. Populate each element with a string that states each coordinate position in the array.
IN JAVA write a program that creates an array of strings with 8 people in it....
IN JAVA write a program that creates an array of strings with 8 people in it. Second,  Assign a random rank between 1 to 8 to each of the players. The rankings do not change throughout the tournament. Finally, Sort the players based on the rankings and print the data (show rankings of players, in square brackets, at every step after they are ranked). USING JAVA COLLECTIONS IS NOT ALLOWED
Write a Java Program to place a pizza ordering program. It creates a pizza ordered to...
Write a Java Program to place a pizza ordering program. It creates a pizza ordered to the specifications that the user desires. It walks the user through ordering, giving the user choices, which the program then uses to decide how to make the pizza and how much the cost of the pizza will be. Note: Use dialog boxes for communicating with the user. Remember to use the JOptionPane class which is the graphical user interface (GUI) and Comments that are...
Write a Java Program to place a pizza ordering program. It creates a pizza ordered to...
Write a Java Program to place a pizza ordering program. It creates a pizza ordered to the specifications that the user desires. It walks the user through ordering, giving the user choices, which the program then uses to decide how to make the pizza and how much the cost of the pizza will be. Note: Use dialog boxes for communicating with the user. Remember to use the JOptionPane class which is the graphical user interface (GUI) and Comments that are...
in C++ Requirements: Write a program that creates a new class called Customer. The Customer class...
in C++ Requirements: Write a program that creates a new class called Customer. The Customer class should include the following private data: name - the customer's name, a string. phone - the customer's phone number, a string. email - the customer's email address, a string. In addition, the class should include appropriate accessor and mutator functions to set and get each of these values. Have your program create one Customer objects and assign a name, phone number, and email address...
IN C LANGUAGE: Write a multi-threaded Linux program that synchronizes it's threads to write to a...
IN C LANGUAGE: Write a multi-threaded Linux program that synchronizes it's threads to write to a file without the file becoming corrupted. To do this, your program will create three threads which write strings to the same file. Each thread will randomly write a selection of strings to the file at random intervals. When finished, the file will contain all the strings written correctly to the file. You may use mutexes, semaphores, or a monitor your write on your own....
Java - Write a test program that creates an Account object with an account number of...
Java - Write a test program that creates an Account object with an account number of AC1111, a balance of $25,000, and an annual interest rate of 3.5. Use the withdraw method to withdraw $3,500, use the deposit method to deposit $3,500, and print the balance, the monthly interest, and the date when this account was created.
JAVA - Write a program that creates an ArrayList and adds an Account object, a Date...
JAVA - Write a program that creates an ArrayList and adds an Account object, a Date object, a ClockWithAudio object, a BMI object, a Day object, and a FigurePane object. Then display all elements in the list. Assume that all classes (i.e. Date, Account, etc.) have their own no-argument constructor.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT