Other FAQ pages
ThreadPoolsExtendingThreadVsImplementingRunnableWaitAndNotifyInObjectClassThreadLister - code to list all currently active threads in a JVM
Articles
Introduction to ThreadLocal
Notable books
Java Concurrency in Practice by Brian Goetz et al.Java Threads by Henry Wong and Scott Oaks
What is multithreading?
A
thread is a lightweight process which when spawned creates parallel paths of execution. It is somewhat similar to multitasking, but whereas tasks are heavyweight processes, threads are lightweight processes that are often part of a task.
Java has support for thread-based multitasking. Threads in Java can be broadly classified in two types:
user threads and
daemon threads. A user thread is what you get by default - the thread that calls the main() method is a user thread. The distinction between user and daemon thread is only to determine whether a program has completed -- the JVM will exit when there are only daemon threads running. A thread can be made Daemon by calling the setDaemon(<boolean>) method. But this call should be made before calling the start() method otherwise a
JavaDoc:java.lang.IllegalThreadStateException will be thrown.
CategoryFaq