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

相关推荐HOT
更多>>
什么是流式分析?
一、什么是流式分析流式分析是指对数据记录进行连续不断地处理和分析,而不是分批进行。通常,流式分析对于在生成数据时连续发送少量数据(通常...详情>>
2023-10-11 22:36:50
实施 GRC 面临哪些挑战?
一、实施 GRC 面临哪些挑战?当企业将 GRC 组件集成到组织活动中时,他们可能会面临挑战。1、变更管理GRC 报告提供了指导企业做出准确决策的见...详情>>
2023-10-11 19:35:31
主要的路由协议有哪些?
一、主要的路由协议有哪些?路由协议是一组规则,用于指定路由器如何识别和转发网络路径上的数据包。路由协议分为两个不同的类别:内部网关协议...详情>>
2023-10-11 18:31:31
VC中的MFC的几种SDI?
一、VC中的MFC的几种SDI区别SDI就是记事本类程序的标准模式;MDI就是word类程序的标准模式;对话框就不用多说了,系统设置、文件属性等等很多配...详情>>
2023-10-11 18:10:35