In Java, what is a thread?
A type of memory allocation
A subprocess or subtask with a shared context with other threads of the same application
A separate process independent of the main application
A method within the main application