Which of the following defines synchronization?
1.Delay a thread until there is sufficient memory and work to keep it up
2.Ensure that two concurrently-executing threads or processes do not execute specific portions of a program at the same time
3.Make every thread start and end at the same time
4.Make every thread do the same thing