简单记录一下对于同步和异步的理解

首先简单的说一下什么是同步:
因为多线程将异步行为引进程序,所以在需要同步时,必须有一种方法强制进行。例如:如果2个线程想要通信并且要共享一个复杂的数据结构,如链表,此时需要确保它们互不冲突,也就是必须阻止B线程在A线程读数据的过程中向链表里面写数据(A获得了锁,B必须等A释放了该锁)。

为了达到这个目的,java在一个旧的的进程同步模型——监控器(Monitor)的基础上实现了一个巧妙的方案:监控器是一个控制机制,可以认为是一个很小的、只能容纳一个线程的盒子,一旦一个线程进入监控器,其它的线程必须等待,直到那个线程退出监控为止。通过这种方式,一个监控器可以保证共享资源在同一时刻只可被一个线程使用。这种方式称之为同步。

同步和异步的区别
同步:提交请求->等待服务器处理->处理完返回 这个期间客户端浏览器不能干任何事

异步:请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕

然后说一说自己对同步和异步的理解
这里的同步和异步和我们平时理解的同步和异步是恰恰相反的,在java中,并不是说一些事物同步执行就是同步,反而一件事情做完后做另一件事情,这叫同步,异步是指在做一件事情执行的同时可以执行其他的东西,这叫异步

你可能感兴趣的:(java)