高并发下的软件开发(一)

本贴最后更新于 2539 天前,其中的信息可能已经事过境迁

同步(Synchronous)&&异步(Asynchronous)

同步

66e66bcf34b94847ad75b1624f866328-QQ20171122205614.png
和上面的图一样,同步方法一旦开始,就需要等待任务执行完毕,然后才能执行下一个任务。

异步

a12befd82cbb46dcbd51c0a8c5364abe-QQ20171122205936.png
异步方法更像是任务分发,就算任务开始执行,也不会妨碍调用者的工作。

e.g

就好像我们平时购物一样,在店里我们需要选购物品,然后商家去仓库取货,得等一会儿才能到我们手中;但是如果我们打开电脑网购就不一样了,我们下单后只需要等快递送到我们手中就行了,中间我们可以干任何事情,等快递到了直接去取货就行了。

并行(Concurrency)&&并发(Parallelism)

并行和并发是两个很容易混淆的概念,它们都表示的是两个或多个任务同时执行。不一样的是,并行可以说是同步进行,而并发实际上值得是交替执行。
13346baa319847b6999eaa2bd978f4a2-QQ20171122212549.png

就像左边的图一样,AB 两个任务是同时执行的,这个就是并行。而右图一会儿执行 A 一会执行 B 这种交替执行就是并发。但是就最终效果来说,即便 AB 是串行执行的依旧会造成并行执行的错觉。

  • 并发
    75 引用 • 73 回帖 • 1 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3186 引用 • 8212 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...