Trail: Essential Java Classes
Lesson: Threads: Doing Two or More Tasks At Once

Questions and Exercises: Threads

Questions

What method in Timer or TimerTask
can you use to determine
when the task was most recently scheduled to execute?
(Hint: You can find the answer by looking at the API
documentation for Timer and TimerTask.
Remember that these classes were introduced in version 1.3 of the
Java platform.)

What is the effect of calling the start method on
a Thread object?

What are the two ways you can provide the implementation for
a thread’s run method?

Exercises

Convert
AnnoyingBeep.java to use the scheduleAtFixedRate method instead of
schedule to schedule the task.
Change the implementation of the run method so
that if the run method is called too late
for a warning beep (say, more than 5 milliseconds
after it was scheduled to run), nothing happens--no beep and
string are generated. (Hint: Remember your answer to question 1.)

Change the main program of
TwoThreadsDemo.java so that it creates a third thread,
named "Bora Bora". ”
Compile and run the program again.
Note that you will also need
SimpleThread.java. Does this change your vacation destiny?

Well-behaved threads voluntarily relinquish the CPU periodically
and give other threads an opportunity to run.
Rewrite the
SelfishRunner class to be
a PoliteRunner.
Be sure to modify the main program in
RaceDemo.java to create PoliteRunners instead of
SelfishRunners.