那么并发与并行的区别又是什么?
**并发编程是编程中的核心问题,**实践中,当人们希望利用计算机处理一些现实世界问题,以及希望同时处理多个问题的时候,并发也就出现了。在需要对同一共享资源进行操作,多个事务之间存在关联,人们把这种看起来多个事务同时运行的特性称为并发性。有个经常容易跟并发混肴的概念叫并行,其实真正懂了之后理解并不困难,可以把并行看过是并发实现中某个局部可以引入的运行设施;在讨论并发时,我们一般不需要假设这个运行或者调度设施究竟是怎么实现的,尽管也有一些时候为了效率因素我们会根据这一点来选择恰当的算法或者实现。实现上来看,并发和并行的不同之处,主要在于并发更关注共享或者同步是如何实现的,而并行作为一个局部,注重于如何划分事务,把不相关的部分剥离开来。
可能有的人就会说了:我工作中用不到并发啊?
但事实上面试时并发编程这块还是很重要的,需要大家去捡起这方面的知识来。
这篇文章就主要与大家谈一谈Java领域的并发,以及JAVA并发工具,还与大家谈谈其他领域的并发问题。
大家可以先看一下脑图,让自己脑子里对并发的有一个清晰的认知。
看完脑图后如果你还还觉得自己对并发编程原理方面理解一点都不透彻,面试也会有点发怵,那么不妨来看看下面这4份并发编程神仙笔记。(文末还有更多相关资料分享,添加小助理vx:bjmsb2020 即可获取!)
-
共享模型篇
-
应用篇
-
原理篇
-
模式篇
共享模型篇
=====
以并发、并行为主线,穿插讲解
进程与线程
Java线程
共享模型之管程
共享模型之内存
共享模型之无锁
共享模型之不可变
共享模型之工具
最后
分享一些资料给大家,我觉得这些都是很有用的东西,大家也可以跟着来学习,查漏补缺。
《Java高级面试》
《Java高级架构知识》
《算法知识》
50538112)]
《Java高级架构知识》
[外链图片转存中…(img-shEgmHnT-1714550538112)]
《算法知识》
[外链图片转存中…(img-e3ndYXat-1714550538112)]