首页 > 编程知识 正文

同步io和异步io的本质区别,java同步与异步的区别

时间:2023-05-06 10:09:37 阅读:174321 作者:967

上次介绍了java多线程的同步和异步,详细分析了两者的基本概念。 今天我们来详细分析一下这两者的区别吧。 另外,它们的表现也不同。 一起理解吧。

首先,他们最大的不同在于,同步需要等待,异步不需要等待。

让我举例说明:

常规B/S模式(同步)、AJAX技术(异步) ) ) ) ) ) ) )。

同步:发送请求-等待服务器处理-在处理完成并返回期间,客户端浏览器不能执行其他操作。

异步:请求由事件触发器-服务处理。 这是浏览器可以做其他事情。 -处理完成。

更清楚地说,同步是按顺序执行的,要先执行一个再执行下一个,必须等待并协调执行。 异步是指相互独立,在等待某个事件的时候继续做自己的事情。 你不需要等这件事完成再工作。

线程是异步实现的一种方法。 异步是指允许主线程执行其他操作,而不需要调用方法的主线程同步等待另一个线程的完成。 异步和多线程不是同一关系。 异步是最终目的,多线程只是实现异步的手段。 异步是指将调用请求发送到调用者,调用者可以做其他事情,而不用等待其结果返回。

实现异步可以交给多线程技术或其他进程。

同步和异步的区别:(利弊)

同步可以避免死锁,可以读取脏数据。 一般在共享某个资源时使用,但如果每个人都有修改权限,但修改一个文件,则一个人可能会读取另一个人删除的内容,从而导致错误。

同步将按顺序修改。 但是,同步需要等待资源访问的结束,既浪费时间,又效率低。

如果是异步的话,效率会提高。 目前,cpu为双核、四核。 如果是异步处理,可以同时进行多个工作。 当然必须保证能同时处理。

但是安全性很低。

另外,需要注意的是异步是目的,多线程是实现该目的的方法。 异步是指A开始某个操作后,(一般是一个很费时间的操作,但如果不执行很费时间的操作就不需要异步)可以继续自己处理自己的事情,而不用等待这个很费时间的操作回来

线程的适用范围是CPU运算需要时间的情况,例如需要时间的图形处理和算法执行。 但是,许多朋友经常使用线程来执行耗时的I/O操作,因为使用线程编程很容易且习惯。 如果只有少量并发操作,则这是无害的,并且在需要处理大量并发操作时不适用。

从异步与多线程、辩证的关系来看,异步与多线程往往是等效的关系。 异步是目的,多线程只是实现异步的一种手段。

异步:异步是指将一个调用请求发送到调用方,调用方不必等待其结果返回。 实现异步可以采用多线程技术,也可以交给其他进程处理。

总之,同步和异步之间是互补合作的关系,这两者可以联系起来理解。 java中有很多这样微不足道的知识点,大家也需要多加小心。 想了解更多java基础知识和常见问题,请关注奇q工具网。

请阅读:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。