Thread is
also called as
lightweight process.A
thread
is a single sequential flow of control within a program.
All programmers are familiar with writing sequential programs. You’ve
probably written a program that displays “Hello World!”, or sorts a
list of names, or computes a list of prime numbers. These are sequential
programs: each has a beginning, an execution sequence, and an end. At
any given time during the runtime of the program there is a single point
of execution.
Threaded environments like Java allow a thread to put locks on shared
resources so that while one thread is using data no other thread can
touch that data. This is done with with synchronization. Synchronization
should be used sparingly since the purpose of threading is defeated if
the entire system gets stopped waiting for a lock to be released. The
proper choice of objects and methods to synchronize is one of the more
difficult things to learn about threaded programming.
Java applications and applets are naturally threaded. The runtime
environment starts execution of the program with the
main()
method in one thread. Garbage collection takes place in another thread.
Screen updating occurs in a third thread. There may be other threads
running as well, mostly related to the behavior of the virtual machine.
All of this happens invisibly to the programmer. Some of the time you’re
only concerned with what happens in the primary thread which includes
the
main()
method of a program. If this is the case you may not need to worry about threading at all.