A decent book: Concurrency, State Models & Java Programs by Jeff Magee & Jeff Kramer 'Process' can be used to refer to an operating system process, which is a unit of resource allocation both for CPU time and memory in a system. An os process is characterized by: -a data segment -a code segment -multiple stacks, one for each thread The code for each thread is in the code segment and all threads in a process can access the data segment. A thread can be represented as a path of execution through code. Basically, a process may contain several threads. I also think some use the terms 'thread' and 'process' interchangeably. ...Mike B.
I'd like to add my humble comment...in the java world, a process is controlled by the native OS, outside of the java VM. You might have several VMs running on a machine, each in its own process, but the VM itself can't control how much processor time that process receives. A thread is scheduled and time-sliced by the Java VM. It may delegate certain scheduling tasks to the native OS, depending on the actual VM implementation and native OS, but the threads are much more under the control of the VM than an OS process. Rob
Process is nothing but different program running on computer concurrently e.g. Microsoft word and Microsoft Paint are running on same computer at the same time. But the thread is nothing but part of the program which run concurrently on the computer e.g formatting and printing word document. The are two tasks would correspond to executing parts of the program concurrently. Each such part define separate path of execution which is called thread. Ash Sun certified Java Programmer