Explain the difference between a process and a thread, and discuss when you would use multi-threading versus multitasking.