Related questions
write a program that consists of two threads. The first is the main thread that every Java application has. The main thread should create a new thread from the Runnable object, MessageLoop, and wait for it to finish. If the MessageLoop thread takes too long to finish, the main thread should interrupt it. Use a variable named maxWaitTime to store the maximum number of seconds to wait. The main thread should output a message stating that it is still waiting every half second.
The MessageLoop thread should print out a series of 4 messages. 4 means 4. If you use 5 messages, you will receive a 0. These messages should be numbered, as in the example below. It should wait 850 milliseconds between printing messages to create a delay. If it is interrupted before it has printed all its messages, the MessageLoop thread should print "Message loop interrupted" and exit. Or you can let main print "Message loop interrupted" as in the sample output. The MessageLoop thread must try to output all 4 messages. Don't pass it a parameter that it uses to know when to stop printing messages. Only main should know that it might interrupt the MessageLoop thread.
Your program must demonstrate that it can both output messages and interrupt the message output. To do this, place the body of main into a for loop using maxWaitTime as the index. As in the following example, it should finally output all 4 messages in the last iteration.
This program should not ask the user for any input or accept any command line arguments. This means don't use the args from public static void main(String args[]).
So in main your code will be
for (int maxWaitTime = 1; maxWaitTime <= 4; maxWaitTime++) {
// All of main's processing goes here (Note that it does not say some, it says all).
}
Sample Output
Sample output :
maxWaitTime: 1 second(s)
main : Starting MessageLoop thread
main : Waiting for MessageLoop thread to finish
main : Continuing to wait...
main : Continuing to wait...
Thread-0 : 1. All that is gold does not glitter, Not all those who wander are lost
main : MessageLoop interrupted
maxWaitTime: 2 second(s)
main : Starting MessageLoop thread
main : Waiting for MessageLoop thread to finish
main : Continuing to wait...
main : Continuing to wait...
Thread-1 : 1. All that is gold does not glitter, Not all those who wander are lost
main : Continuing to wait...
main : Continuing to wait...
Thread-1 : 2. The old that is strong does not wither, Deep roots are not reached by the frost
main : MessageLoop interrupted
maxWaitTime: 3 second(s)
main : Starting MessageLoop thread
main : Waiting for MessageLoop thread to finish
main : Continuing to wait...
main : Continuing to wait...
Thread-2 : 1. All that is gold does not glitter, Not all those who wander are lost
main : Continuing to wait...
main : Continuing to wait...
Thread-2 : 2. The old that is strong does not wither, Deep roots are not reached by the frost
main : Continuing to wait...
main : Continuing to wait...
Thread-2 : 3. From the ashes a fire shall be woken, A light from the shadows shall spring
main : MessageLoop interrupted
maxWaitTime: 4 second(s)
main : Starting MessageLoop thread
main : Waiting for MessageLoop thread to finish
main : Continuing to wait...
main : Continuing to wait...
Thread-3 : 1. All that is gold does not glitter, Not all those who wander are lost
main : Continuing to wait...
main : Continuing to wait...
Thread-3 : 2. The old that is strong does not wither, Deep roots are not reached by the frost
main : Continuing to wait...
main : Continuing to wait...
Thread-3 : 3. From the ashes a fire shall be woken, A light from the shadows shall spring
main : Continuing to wait...
Thread-3 : 4. It is what it is
main : Done!
Trending nowThis is a popular solution!
Step by stepSolved in 2 steps
- Write a Java program ( use ComputerAverage.Java as an example) that should implement an interactive dialog that provides user with information about the procedures and asks user for information. Create a new folder Hw2_Campbell which includes the following files assignment report file:Report_Area_Circumference.doc program’s source file: Area_Circumference.Java Program’s bytecode file: Area_Curcumference.arrow_forwardBuild a class that extends from the Java FX Application class. Name this class - Thread and it needs to use Runnable. You DO NOT NEED to build any GUI code, just build the code to make the thread work. Have the Thread code just loop and print out "Hello World" 100 times. Build a main method in this class which will instantiate this class and start the Thread.arrow_forwardA private hospital would like to implement a Java application to manage patient-specialist appointment. The hospital has five specialists, in different areas of medicine (e.g. cardiac, renal, paediatric). These specialists have regular slots for appointments every week. For example, the cardiac specialist may have six slots available on Monday, Wednesday and Friday; for simplicity, we assume each slot starts on the hour (e.g. 9am, 10am etc).The system should be used by patients to schedule an appointment with a specialist. Each patient will first enter their unique hospital id number, and then the specialist they want to meet and desired date. The system will list the available slots for that specialist. The patient may then select one of the availableslots, select a different date, or a different specialist. The patient should also be shown a list of all booked appointments, which they have yet to attend. When the patient arrives for their appointment, they need to enter their...arrow_forward
- In Java inside class StaticMethods, create the static method menuInteger that displays a menu for the user to select 1000 , 2000 or 3000 The method returns the INTEGER( int) entered, ONLY when the user types 1000, 2000 or 3000, otherwise prints a message and stays in a loop. Test it from main().arrow_forwardJava Netbeansarrow_forwardWrite a client program for MyTime which loops around getting strings fromthe user representing times and responding with a greeting such as "goodmorning" as appropriate. The user should enter the string "quit" to exit theprogram. EXAMPLE run of client:USER: 2:07 pmPROGRAM: good afternoonUSER: 10:71 amPROGRAM: that’s not a valid time, please re-enterUSER: 14:30amPROGRAM: that’s not a valid time, please re-enterUSER: 10:21amPROGRAM: good morningUSER: 7:00 pmPROGRAM: good evening the set method for MyTime should detect inputstrings which do not represent valid times. An exception should be thrown insuch a case. Clients will haveto handle (or catch) the exceptions. Thus you will have to also write your own exception class which can be used by MyTime and the client class. Here are my code: public class MyTime { private String time; public String getTime() { return time; } public void setTime() throws InvalidTime { String time = askTime(); if (time.equalsIgnoreCase("quit")) {...arrow_forward
- Text book imageComputer Networking: A Top-Down Approach (7th Edi...Computer EngineeringISBN:9780133594140Author:James Kurose, Keith RossPublisher:PEARSONText book imageComputer Organization and Design MIPS Edition, Fi...Computer EngineeringISBN:9780124077263Author:David A. Patterson, John L. HennessyPublisher:Elsevier ScienceText book imageNetwork+ Guide to Networks (MindTap Course List)Computer EngineeringISBN:9781337569330Author:Jill West, Tamara Dean, Jean AndrewsPublisher:Cengage Learning
- Text book imageConcepts of Database ManagementComputer EngineeringISBN:9781337093422Author:Joy L. Starks, Philip J. Pratt, Mary Z. LastPublisher:Cengage LearningText book imagePrelude to ProgrammingComputer EngineeringISBN:9780133750423Author:VENIT, StewartPublisher:Pearson EducationText book imageSc Business Data Communications and Networking, T...Computer EngineeringISBN:9781119368830Author:FITZGERALDPublisher:WILEY