Explain how threading can be used to improve the user experi…

Explain how threading can be used to improve the user experience of waiting for a program to run all of the preliminary tasks that must occur for the program can actually be used. Obviously, this question is asking for something that specifically relates to the given scenario, not just a general advantage of multithreading that applies to all scenarios of a programming running.

Below is the pseudocode of the fourth version of Dekker’s al…

Below is the pseudocode of the fourth version of Dekker’s algorithm. Fully explain the problem with this algorithm. Note: The code of the threads (after the first three lines) is written TWICE in this question. The first time, the code of the two threads are side-by-side to make it easier to compare them. But in case this does not show up properly on your screen, the code is written again with T2’s code written AFTER T1’s. boolean t1WantsToEnter = false;boolean t2WantsToEnter = false;startThreads();*** SIDE BY SIDE ***// T1:                                                        // T2:while (!done) {                                               while (!done) {   // non-critical code goes here                                // non-critical code goes here   t1WantsToEnter = true; // this line marks                     t2WantsToEnter = true; // this line marks                          // entering mutual exclusion                                  // entering mutual exclusion  while (t2WantsToEnter) {                                      while (t1WantsToEnter) {      t1WantsToEnter = false;                                       t2WantsToEnter = false;      // here the code sleeps a small amount of time                // here the code sleeps a small amount of time      t1WantsToEnter = true;                                        t2WantsToEnter = true;   }                                                             }   // critical section code goes here                            // critical section code goes here  t1WantsToEnter = false; // this line marks                    t2WantsToEnter = false; // this line marks                           // exiting mutual exclusion                                   // exiting mutual exclusion   // more non-critical code goes here                           // more non-critical code goes here}                                                             }*** TOP AND BOTTOM ***// T1:while (!done) {   // non-critical code goes here   t1WantsToEnter = true; // this line marks                          // entering mutual exclusion   while (t2WantsToEnter) {      t1WantsToEnter = false;      // here the code sleeps a small amount of time      t1WantsToEnter = true;   }   // critical section code goes here   t1WantsToEnter = false; // this line marks                           // exiting mutual exclusion   // more non-critical code goes here}// T2:while (!done) {   // non-critical code goes here   t2WantsToEnter = true; // this line marks   // entering mutual exclusion  while (t1WantsToEnter) {      t2WantsToEnter = false;      // here the code sleeps a small amount of time      t2WantsToEnter = true;   }   // critical section code goes here  t2WantsToEnter = false; // this line marks                           // exiting mutual exclusion   // more non-critical code goes here}                                                                               }

Below is the pseudocode of Peterson’s Algorithm. Explain why…

Below is the pseudocode of Peterson’s Algorithm. Explain why indefinite postponement cannot occur in this algorithm. Note: The code of the threads (after the first four lines) is written TWICE in this question. The first time, the code of the two threads are side-by-side to make it easier to compare them. But in case this does not show up properly on your screen, the code is written again with T2’s code written AFTER T1’s. int favoredThread = 1;boolean t1WantsToEnter = false;boolean t2WantsToEnter = false;startThreads(); *** SIDE BY SIDE ***// T1:                                                            // T2:while (!done) {                                                   while (!done) {   // non-critical code goes here                                    // non-critical code goes here   t1WantsToEnter = true; // this line marks                         t2WantsToEnter = true; // this line marks                           // entering mutual exclusion                                      // entering mutual exclusion   favoredThread = 2;                                                favoredThread = 1;   while (t2WantsToEnter && favoredThread == 2) ; // spin            while (t1WantsToEnter && favoredThread == 1) ; // spin   // critical section code goes here                                // critical section code goes here   t1WantsToEnter = false; // this line marks                        t2WantsToEnter = false; // this line marks                           // exiting mutual exclusion                                       // exiting mutual exclusion   // more non-critical code goes here                               // more non-critical code goes here}                                                                 }*** TOP AND BOTTOM ***// T1:while (!done) {   // non-critical code goes here   t1WantsToEnter = true; // this line marks entering mutual exclusion   favoredThread = 2;   while (t2WantsToEnter && favoredThread == 2) ; // spin   // critical section code goes here   t1WantsToEnter = false; // this line marks exiting mutual exclusion   // more non-critical code goes here}// T2:while (!done) {   // non-critical code goes here   t2WantsToEnter = true; // this line marks entering mutual exclusion   favoredThread = 1;   while (t1WantsToEnter && favoredThread == 1) ; // spin   // critical section code goes here   t2WantsToEnter = false; // this line marks exiting mutual exclusion   // more non-critical code goes here}

Write a Java program that will use two threads to display th…

Write a Java program that will use two threads to display the squares of all numbers from 1 to 100 (1, 4, 9, 16…). The numbers can be displayed in any order. One thread should do the numbers from 1 – 50, the other the numbers from 51 – 100, but your code should be written so that the class of a single thread can be set up to handle any range, and you should use this same class twice in main. Enter your code directly in the textbox, you are not allowed to use an IDE or editor for this. Use a monospace font if possible and use spaces for correct indentation. Use Java comments (//) to indicate when you are starting a new class and to explain anything else about your code.