This is how I see threads. Please do correct me if I'm wrong:
A thread is a part of a process that runs a sequence of program code. There can be many threads within a process that run different parts of a program (one thread manages keyboard input, one manages auto-saving, one manages printing etc.). The process allocates resources while the thread(s) are responsible for getting tasks executed by being scheduled for CPU time.
My question is:
Are threads always bound to their own process or can they exchange resources with other threads outside of their process?