你真的了解吗?java高并发与多线程

本文探讨了并发与并行的概念,指出并发是处理多任务的能力,而并行意味着同时运行。同步和异步是方法执行的两种方式,同步确保方法执行完毕后继续,异步则允许不等待执行结束。高并发是指系统短时间内处理大量请求,常见于web系统,可通过多线程等手段解决。此外,文章还涉及了服务雪崩、高并发的四大利器(缓存、降级、限流、线程池)以及进程和多线程的相关知识。
摘要由CSDN通过智能技术生成

【并发与并行】

从题目名词开始讲。

并发

并发,顾名思义,一起出发;

在你吃饭的时候,来了一个电话,如果你可以先接电话,然后再继续把饭吃完,这个叫并发;

但是如果你只能等饭吃完才可以去接电话,叫非并发(串行)。

所以,并发指的是处理多任务的能力,当你只能一件事情一件事情串行执行任务的时候,就是不支持并发的,当你可以多件事情一起执行的时候(轮替或者其他方式),就是支持并发的。

并行

还是举上面那个例子,当你吃饭的时候,来了一个电话,你边吃饭边接电话,这叫并行;

并行指的就是同时运行;支持并行的基础就是多线程。

【同步和异步】

同步和异步的概念一般用于方法。

同步  

当一个方法开始执行,必须等这个方法执行结束,才可以往下执行,我们叫做同步。

同步主要用于上下有递进关系的代码,特点是有序,串行执行,逻辑简单,但是执行效率较低。

异步     

当一个方法开始执行,我们不必等这个方法执行结束,直接执行后面的内容,我们叫做异步。

(可以认为只是进行了一个消息的传递,调用后会立即返回)

异步在java里面主要使用线程(包括一些封装类也是如此)实现,特点是执行效率高,但是逻辑相对复杂,容易出问题。

【什么是高并发】

有果必有因,通俗来讲,多线程可以认为是高并发的一种表现形式或者解决方案,所以在讲多线程之前,我们先讲高并发。

高并发,指的是一个系统,在短时间内,收到大量操作请求的情况。

这种情况,一般而言主要发生在web系统中,比如:京东双十一,微博明星传出绯闻,12306春运抢票等等。

很容易理解的东西我们不过多的作诠释,以下几项,是高并发的常用指标:

响应时间(Response Time)

系统对请求作出的响应时间(一个请求从请求发出到请求结束的时间)

吞吐量(Throughput)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值