- 1、本文档共40页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
班
上
基础知识再
码
1.为什么要使用并发编程代
提升多核CPU的利用率:一般来说一台主机上的会有多个CPU核心,我们可以创建多个线程,理论
点
上讲操作系统可以将多个线程分配给不同的CPU去执行,每个CPU执行一个线程,这样就提高了
CPU的使用效率,如果使用单线程就只能有一个CPU核心被使用。
看
比如当我们在网上购物时,为了提升响应速度,需要拆分,减库存,生成订单等等这些操作,就可
以进行拆分利用多线程的技术完成。面对复杂业务模型,并行程序会比串行程序更适应业务需求,
:
而并发编程更能吻合这种业务拆分。
号
简单来说就是:众
充分利用多核CPU的计算能力;
方便进行业务拆分,提升应用性能
公
2.多线程应用场景
例如:迅雷多线程下载、数据库连接池、分批发送短信等。
3.并发编程有什么缺点
并发编程的目的就是为了能提高程序的执行效率,提高程序运行速度,但是并发编程并不总是能提
高程序运行速度的,而且并发编程可能会遇到很多问题,比如:内存泄漏、上下文切换、线程安
全、死锁等问题。
4.并发编程三个必要因素是什么?
原子性:原子,即一个不可再被分割的颗粒。原子性指的是一个或多个操作要么全部执行成功要么
全部执行失败。
可见性:一个线程对共享变量的修改,另一个线程能够立刻看到。(synchronized,volatile)
有序性:程序执行的顺序按照代码的先后顺序执行。(处理器可能会对指令进行重排序)
5.Java程序中怎么保证多线程的运行安全?
出现线程安全问题的原因一般都是三个原因:
线程切换带来的原子性问题解决办法:使用多线程之间同步synchronized或使用锁(lock)。
缓存导致的可见性问题解决办法:synchronized、volatile、LOCK,可以解决可见性问题
编译优化带来的有序性问题解决办法:Happens-Before规则可以解决有序性问题
6.并行和并发有什么区别?
并发:多个任务在同一个CPU核上,按细分的时间片轮流(交替)执行,从逻辑上来看那些任务是
同时执行。
并行:单位时间内,多个处理器或多核处理器同时处理多个任务,是真正意义上的“同时进行”。
班
串行:有n个任务,由一个线程按顺序执行。由于任务、方法都在一个线程执行所以不存在线程不
安全情况,也就不存在临界区的问题。上
您可能关注的文档
最近下载
- 田径裁判法教案.doc
- NB-T 11258-2023井工煤矿机电管理通用要求.pdf
- 江苏开放大学2024年秋形势与政策《060112》作业一二三四参考答案.pdf VIP
- 耐张线夹X光射线探伤技术规范书.doc
- AC311-67-2017-07关于AC311型机总距杆低距锁片检查和调整的技术.doc VIP
- TAHSX 2-2024 过瘤胃(包被)蛋氨酸.docx
- 2023北京海淀六年级下学期期末数学试卷及答案.pdf VIP
- 英汉对比研究-替换与重复.ppt VIP
- 河南省南阳市西峡县2023-2024学年七年级上学期期末语文试题(解析版).docx VIP
- 零售学第五版肖怡课后答案.doc
文档评论(0)