From a system point of view, a flow is determined by its “ state ” and “instruction pointer” "
The instruction pointer ( eip ) contains the address of the next command to be executed.
The state thread can be: registers (eax, ebx, etc.), signals , open files , code , stack , data controlled by this stream (variables, arrays, etc.), as well as a bunch .
Process is a group of threads that share part of their state ": it could be a code , > data strong>, a bunch . I hope I will answer your question;)
EDIT: Processes can communicate via IPC (Inter process communication). There are 3 mechanisms: shared memory , message queue . Synchronization between processes can be done using Semaphores.
Thread synchronization can be done using mutexes ( pthread_mutex_lock, pthread_mutex_unlock, etc. )
source share