大家好,今天小编关注到一个比较有意思的话题,就是关于并发编程怎么学习的问题,于是小编就整理了2个相关介绍并发编程怎么学习的解答,让我们一起看看吧。
jvm与并发编程先学哪个比较好?
我是从自己的工作经历来回答的,首先要对jvm有基本的了解,才能更好的会使用jstat,jmap,jstsck来解决实际问题,接下来由于工作的需要,仅仅了解多线程和线程池是不够的,这时候就开始学习java并发编程,并在工作中常用到这些知识,后面随着兴趣开始学习jvm,随着学习和工作的深入,这些知识的作用会慢慢展现出来,前提是不要把自己定位成一个实现业务需求的角色,要多深入学习和实践,或者多看些优秀的开源作品。
个人感觉没有啥先后顺序,不过先学jvm你能读明白字节码,一些多线程的例子反编译过来看字节码能明白一些事,比如监视器怎么加的。或者你知道了jvm内存几个区域,有的地方不涉及到共享问题,也不会线程不安全。多线程可以看看Java高并发程序设计这本书。jvm可以看看深入j***a虚拟机这本书。有条件的话,经常用生产上的机器解决一些问题,比如内存满了用jmap和mat分析,这样能加强你对jvm熟悉,同时也可以对生产环境进行jvm调优。如果出现应用卡死,可能有死锁,大事物,死循环这样的,你可以用jstack和jstat去分析线程栈,会学到一些多线程的知识。同时你可以用gceasy这个在线工具把你的堆栈上传上去,有个可视化的分析。另外阿里的arthas是个调试神器,jprofiler可以可视化很多东西。xxfox也是个在线学习jvm的好网站。
如果你愿意的话,当你想深入线程的话,可以看看posix线程规范pthread和linux内核的一些知识,能加强你对j***a线程的理解以及j***a内存分配的理解。
除了书,推荐你极客时间的j***a并发编程实战,深入拆解jvm虚拟机。如果你还想对jvm再深入的话,可以看看openjdk源码,需要有c的底子,还有自己动手写j***a虚拟机这本书。
JVM 是j***a的虚拟机 是实现j***a 字节码到机器语言的一个转换。
学习jvm其实就是要学习 j***a。
这些年给予jvm衍生了一些其他语言,比如 大数据 spark的推荐语言 Scala。
并行编程,有大概两种理解:
1. 软件语言级别的多线程,Golang的协程等,Golang可以支持 多核CPU的并行编程。
2. 硬件级别,比如电子通信领域的 FPGA 可编程逻辑阵列。也是半导体行业芯片制作前的验证步骤。
先选行业,再选技术。
J***a初学有必要深入多线程编程吗,如何学习?
谢谢悟空小秘书的邀请。
对于初学者而言,没必要深入去学习多线程,而且对于J***a开发而言,真正用到多线程编程的地方并不是太多,当然这也和你所做的东西有关,比如游戏编程,网络通讯,这个多线程是少不了的,但对于MIS系统而言,多线程用途并不多,所以除非你工作必需刚开始没必要深入学习多线程。
对于初学者,重点放在学习好基础语法,掌握Web开发或者安卓开发的流程,学习开发过程中常用的工具和框架,说白了就是先学会怎么用,后续在工作中不断的丰富自己的经验。本人从事J***a开发有很多年了,也许是从事Web开发的缘故,刚开始几乎就接触不到多线程,也只要在后来的业务中才用到多线程的东西。
总之具体问题具体分析,技术是用来开发软件的,软件是为业务需要服务的,如果因为工作需要可以深入去研究,如果工作暂时不需要,可以把重心放在基础上吧。
要知道,多线程本身其实是与编程语言无关的概念,所以其实不管你学习什么语言,它都是一个很重要的知识点。但如果以初学为前提条件,我个人认为要看你学J***a的主要用途,一般来说,学J***a主要做两个方面,一方面是后端、Web方向,一方面就是做安卓。以我的经验来出发,针对这两种学J***a的用途大概说一下,如有偏差,欢迎大家在评论区交流讨论,共同学习:
01 后端、Web
如果你学J***a最终目的是想做后端、做Web的话,那鄙人认为暂时不用深入学习。毕竟要系统地学习J***a还是要理解不少概念的,且得下翻不少功夫。但也还是要大概实践一下多线程的一些基本的用法,面试时也很喜欢问多线程方面的知识 ,同时它也是操作系统的知识。编程语言是告诉计算机干什么和怎么干活的,多线程是为了在满足人们实际需要的基础上,最大限度地压榨计算机的“剩余价值”。
但如果你要做框架、做底层的话,那仅仅是上面说的实践一下还是不够的,需要用一些实际的例子练习一下。比如说做一个简单的线程池、编写一个[_a***_]的全双工等等。
02 Android
如果你学J***a是为了做Android,那还是有必须稍微深入一些的。毕竟当你每启动一个app里,Android系统就启动一个UI Thread或Main Thread。Android还提供了四种操作多线程的方式,Handler+Thread、 AsyncTask、 ThreadPoolExecutor、IntentService。总之,在安卓里面,你可以有很多种打开多线程的姿势。
但不管你用来做什么,当你学买习完基本之后,都一定要再深入学习一下多线程,这不仅是对编程能力有好处,在找工作时也将受益无穷。
以上就是我的拙见,欢迎在评论区讨论。
到此,以上就是小编对于并发编程怎么学习的问题就介绍到这了,希望介绍关于并发编程怎么学习的2点解答对大家有用。