Hi Rahul, Thanks for repy. Can you please give me some link to reading material on Process? mukesh
Jerry Pulley
Ranch Hand
Joined: Sep 19, 2000
Posts: 221
posted
0
Mukesh, In a nutshell, a process can contain multiple threads. In most multithreading operating systems, a process gets its own memory address space; a thread doesn't. Threads typically share the heap belonging to their parent process. For instance, a JVM runs in a single process in the host O/S. Threads in the JVM share the heap belonging to that process; that's why several threads may access the same object. Typically, even though they share a common heap, threads have their own stack space. This is how one thread's invocation of a method is kept separate from another's. This is all a gross oversimplification, but it's accurate enough at a high level. Lots of details differ between operating systems. jply
Mukesh Rathod
Ranch Hand
Joined: Oct 11, 2000
Posts: 32
posted
0
Hi Jerry Thanks a lot for good explanation.
Mukesh
Frank Carver
Sheriff
Joined: Jan 07, 1999
Posts: 6913
posted
0
Just to complicate this a little, some operating systems (mainly Linux at the moment) provide what is known as "native threads". These share process resources in the same way as threads described above, but also appear in the process listing and may be manipulated using process control tools. Older Linux JVMs used "green threads" which are all hidden inside a single process, but JDK 1.3 uses native threds by default. A typical comment from someone who has just upgraded to JDK 1.3 might be "How come there are now 5 copies of my Java Virtual Machine running when my application only used to need one?" If you see this kind of thing, don't worry, it's just Linux native threads.
Is it true that in java each thread has two stacks. I read something like that in java security book. Can anybody explain how the thread uses two stacks?
I agree. Here's the link: http://ej-technologies/jprofiler - if it wasn't for jprofiler, we would need to
run our stuff on 16 servers instead of 3.