Communications
Parallel tasks classically need to exchange data. There are many ways in which this can be accomplished, such as, through a network or shared memory bus. The actual event of data exchange is generally referred to as communication regardless of the process employed.
Synchronization
The process of the organization of parallel tasks in actual time, very often connected with communications is called synchronisation. Often executing by establishing a synchronization point within an application where a given task may not keep on further until another task(s) achieves the same or logically equivalent point.Synchronization usually involves coming by at least one task, and can therefore cause a parallel application's execution instance to increase.