首页 > Java资讯 > 新手适合学习的Java多线程并发基础

新手适合学习的Java多线程并发基础

更新时间:2020-01-14 15:50 浏览253次 来源:动力节点


新手适合学习的Java多线程并发基础


  线程与进程的区别


  在计算机发展初期,每台计算机是串行地执行任务的,如果碰上需要IO的地方,还需要等待长时间的用户IO,后来经过一段时间有了批处理计算机,其可以批量串行地处理用户指令,但本质还是串行,还是不能并发执行。如何解决并发执行的问题呢?于是引入了进程的概念,每个进程独占一份内存空间,进程是内存分配的最小单位,相互间运行互不干扰且可以相互切换,现在我们所看到的多个进程“同时"在运行,实际上是进程高速切换的效果。


  那么有了线程之后,我们的计算机系统看似已经很完美了,为什么还要进入线程呢?如果一个进程有多个子任务,往往一个进程需要逐个去执行这些子任务,但往往这些子任务是不相互依赖的,可以并发执行,所以需要CPU进行更细粒度的切换。所以就引入了线程的概念,线程隶属于某一个进程,它共享进程的内存资源,相互间切换更快速。


  进程与线程的区别:


  1.进程是资源分配的最小单位,线程是CPU调度的最小单位。所有与进程相关的资源,均被记录在PCB中。


  2.线程隶属于某一个进程,共享所属进程的资源。线程只由堆栈寄存器、程序计数器和TCB构成。


  3.进程可以看作独立的应用,线程不能看作独立的应用。


  4.进程有独立的地址空间,相互不影响,而线程只是进程的不同执行路径,如果线程挂了,进程也就挂了。所以多进程的程序比多线程程序健壮,但是切换消耗资源多。


  Java中进程与线程的关系:


  1.运行一个程序会产生一个进程,进程至少包含一个线程。


  2.每个进程对应一个JVM实例,多个线程共享JVM中的堆。


  3.Java采用单线程编程模型,程序会自动创建主线程 。


  4.主线程可以创建子线程,原则上要后于子线程完成执行。


  线程的start方法和run方法的区别


  区别


  Java中创建线程的方式有两种,不管使用继承Thread的方式还是实现Runnable接口的方式,都需要重写run方法。调用start方法会创建一个新的线程并启动,run方法只是启动线程后的回调函数,如果调用run方法,那么执行run方法的线程不会是新创建的线程,而如果使用start方法,那么执行run方法的线程就是我们刚刚启动的那个线程。


新手适合学习的Java多线程并发基础


       以上就是动力节点Java培训机构小编介绍的“新手适合学习的Java多线程并发基础”的内容,希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为你服务。


  相关内容


  java多线程的状态转换以及基本操作


  常见Java多线程面试题总结


  Java多线程学习,深入解析

热门课程推荐

全部班型支持免费试学

动力节点在线报名表(此信息已加密,请放心填写)

返回顶部