introduction to concurrency and parallelism the use of grids can make distributing concurrent/parallel processes amongst set of physical and virtual machines much easier concurrency and synchronisation concurrency relates to executing multiple tasks at the same time in many cases these tasks are not related to each other such as printing document and refreshing the user interface in these casesthe separate tasks are completely independent and can execute at the same time without any interaction in other situations multiple concurrent tasks need to interactfor examplewhere one or more tasks produce data and one or more other tasks consume that data this is often referred to as producer-consumer relationship in other situationsall parallel processes must have reached the same point before some other behaviour is executed another situation that can occur is where we want to ensure that only one concurrent task executes piece of sensitive code at timethis code must therefore be protected from concurrent access concurrent and parallel libraires need to provide facilities that allow for such synchronisation to occur object orientation and concurrency the concepts behind object-oriented programming lend themselves particularly well to the concepts associated with concurrency for examplea system can be described as set of discrete objects communicating with one another when necessary in pythononly one object may execute at any one moment in time within single interpreter howeverconceptually at leastthere is no reason why this restriction should be enforced the basic concepts behind object orientation still holdeven if each object executes within separate independent process