I usually say: a process is a running program with its own memory. A thread runs inside a process, threads of the same process share the memory (heap, globals, open files) but each has its own stack and registers.
Then an example: a browser can run each tab as a separate process so one crashing doesn't kill the rest, and inside a tab different threads do rendering, network etc.
Then one tradeoff: threads are cheaper and share data easily, but that's also why you need locks.