If you are experienced in using the POSIX threads package (pthread) in C or
C++, one of the first things you may have noticed while learning Java is that
thread semantics is one area where Java's designers did not try to emulate C
semantics. The next thing you may have noticed is that the Java approach
seems awkward in many circumstances.
For instance, consider the timer() method shown in Listing 1. You might want
to add a method like this to a long-running application to reassure yourself
that your Java Virtual Machine has not gotten hung. Since this method
contains an infinite loop, it only makes sense to run it in its own thread.
The POSIX threads model allows you to pass a function pointer and an argument
pointer to the pthread_create() method. The specified function is executed in
its own thread of control and the argument pointer can be used to pass data
stru... (more)