A process has a lot more data associated with it and is typically scheduled by the kernel. A process may have several threads. If you have two processes working together, getting them to communicate with each other can be quite an involved task.
Threads, on the other hand, live within a process and essentially share variables. In fact, you have to take special care to prevent them from fighting over the same variables and data resources as they run.
Maybe start with this wikipedia article on lightweight processes