Every thread belongs to a thread group. A thread group is simply a logical grouping of related threads.
The main thread group is part of every program, along with the thread groups particular to the project. The main thread group includes the threads that run in the browser. Any keyboard action the user performs interacts with the threads in the main thread group.
Each thread is always in one of seven states: running, sleeping, suspended, waiting on a conditional variable, stopped at a breakpoint, zombie, or cannot be determined. When a thread is stopped, you can view the call stack that makes up the thread. You can view the call stack of a running thread, but the information you see is only as current as the last snapshot of the thread.
The call stack includes all methods that have been called but have not returned to the caller. A method is similar to a procedure or function. The methods in the call stack are listed in the order that they were called. The method that was executing when the program stopped is at the top of the stack.
Next lesson: