多线程和并发的区别和关系?
一、多线程和并发的区别和关系
区别
多线程是java的特性,因为现在cpu都是多核多线程的,可以同时执行几个任务,为了提高jvm的执行效率,java提供了这种多线程的机制,以增强数据处理效率。多线程对应的是cpu,高并发对应的是访问请求,可以用单线程处理所有访问请求,也可以用多线程同时处理访问请求。
在过去单CPU时代,单任务在一个时间点只能执行单一程序。之后发展到多任务阶段,计算机能在同一时间点并行执行多任务或多进程。虽然并不是真正意义上的“同一时间点”,而是多个任务或进程共享一个CPU,并交由操作系统来完成多任务间对CPU的运行切换,以使得每个任务都有机会获得一定的时间片运行。
高并发不是JAVA的专有的东西,是语言无关的广义的,为提供更好互联网服务而提出的概念。
典型的场景,例如:12306抢火车票,天猫双十一秒杀活动等。该情况的发生会导致系统在这段时间内执行大量操作,例如对资源的请求,数据库的操作等。如果高并发处理不好,不仅仅降低了用户的体验度(请求响应时间过长),同时可能导致系统宕机,严重的甚至导致OOM异常,系统停止工作等。
如果要想系统能够适应高并发状态,则需要从各个方面进行系统优化,包括,硬件、网络、系统架构、开发语言的选取、数据结构的运用、算法优化、数据库优化等……而多线程只是其中解决方法之一。
关系
多线程是处理高并发的一种编程方法,即并发需要用多线程实现。多线程是完成任务的一种方法,高并发是系统运行的一种状态,通过多线程有助于系统承受高并发状态的实现。
延伸阅读:
二、线程的五大状态
创建状态当用 new 操作符创建一个线程的时候就绪状态调用 start 方法,处于就绪状态的线程并不一定马上就会执行 run 方法,还需要等待CPU的调度运行状态CPU 开始调度线程,并开始执行 run 方法阻塞状态线程的执行过程中由于一些原因进入阻塞状态比如:调用 sleep 方法、尝试去得到一个锁等等死亡状态run 方法执行完 或者 执行过程中遇到了一个异常以上就是关于多线程和并发的区别和关系的内容希望对大家有帮助。

相关推荐HOT
更多>>
接口测试测试用例怎么写?
一、接口测试测试用例1. 某个用例的测试目的是什么在进行接口测试脚本的编写前,我们应该明确这批脚本的预期目标在哪里,是为了验证什么内容。...详情>>
2023-10-14 22:40:12
物联网是做什么的?
一、物联网是做什么的物联网(Internet of Things,简称IoT)是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等...详情>>
2023-10-14 20:08:42
c++命名都有什么潜规则?
一、c++命名的潜规则在 C++ 中,命名有以下一些潜规则:标识符应该有意义,能够清晰地描述其所代表的实体。标识符应该以字母或下划线开头,不能...详情>>
2023-10-14 17:05:02
Rust 的优点是什么?
一、Rust 的优点Rust是一种系统级编程语言,由Mozilla开发和维护。Rust的设计目标是将安全性、并发性和性能相结合,成为一种快速、安全和可靠的...详情>>
2023-10-14 13:52:05