• 同步和异步有何异同,在什么情况下分别使用他们?


    如果有一个资源需要被一个或多个线程共享,这个资源就变成了“竞争”资源,此时多条线程必须按某种既定的规则、依次访问、修改这个“竞争”资源,当一条线程正在访问、修改该“竞争”资源时,其他线程不能同时修改这份“竞争”资源,这就是同步处理。

    对于一个银行账户,如果有多个线程试图去访问这个账户时,如果不对多个线程进行同步控制,有可能账户余额只有1000块,但多个线程都试图取款800块时,这些线程同时判断余额之后,都会显示余额足够,从而导致每个线程都取款成功。这显然不是我们希望看到结果。

    当程序试图执行一个耗时操作时,程序不希望阻塞当前执行流,因此程序也不应该试图立即获取该耗时操作返回的结果,此时就使用异步编程了,典型的应用场景就是Ajax。当浏览器通过JavaScript发出一个异步请求之后,JavaScript执行流并不会停下来,而是继续向下执行,这就是异步。程序会通过监听器来监听远程服务器响应的到来。

    Java Program!
  • 相关阅读:
    关联规则算法---Eclat算法
    Apriori算法第二篇----详细分析和代码实现
    scrapy框架初识
    git入门
    phantomjs的和谷歌浏览器的简单使用
    selenium模块的而简单使用
    代理ip的使用以及多进程爬取
    爬虫之re块解析
    爬虫初识和request使用
    xpath的基础使用
  • 原文地址:https://www.cnblogs.com/programb/p/14068584.html
Copyright © 2020-2023  润新知