背景:当多个线程需要访问同一个资源时,需要某种顺序来确保该资源在某一时刻只能被一个线程使用,否则后果不可预料。这个时候需要对数据进行同步。同步机制能够保证资源的安全性。
同步:实现同步操作,需要获得每一个线程对象的锁,这样能确保在同一时刻只有一个线程能够进入临界区(互斥资源的代码块),其他线程需要等这个线程退出临界区,锁才能释放,等待队列中其他优先级高的线程才能获得该锁,从而进入临界区。(使用synchronize关键字来实现同步,但是会有很大的资源开销甚至出现死锁)。 实现同步操作的方法有两种:①利用同步代码块;②利用同步方法。
异步:在进程输入输出处理时,不必关心其他线程的状态或行为,也不必等待输入输出处理完毕才返回,这个时候可以进行异步编程,能够提高程序的效率。