Compare threads and processes. Give at least two similarities and at least three differences. Both implement an abstraction that represents a virtual machine, including a processor, memory and devices. Both can execute concurrently. Threads in the same process have the same address space, while processes always have their own address space.
Threads have the same address space, while processes have different address spaces.
This is wrong, but I gave partial credit for it. There is less overhead for creating a thread than for creating a process. Processes are always implemented by the operating system, while threads may be implemented by the operating system or by a user-level threads package. Context switching is faster for user threads than for processes. Context switching is faster for threads than for processes.