当前位置:   article > 正文

面试-java多线程与并发

面试-java多线程与并发

1.进程与线程的区别

在这里插入图片描述
进程是资源分配的最小单位,线程是CPU调度的最小单位。所有与进程相关的资源,都被记录在PCB中 。进程让操作系统的并发性成为可能,线程让进程的内部并发成为可能。
进程是抢占处理机的调度单位,线程属于某个进程,共享其资源
线程只由堆栈寄存器,程序计数器,和TCB组成。
在这里插入图片描述
Java进程跟线程的关系:
在这里插入图片描述
Jvm是多线程的。除了主线程还有GC等其他线程。

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

表面区别:
run方法直接调用主线程(main)。
start方法会创建新的线程。
源码中start使用start0()方法调用JVM_StartThread()方法。
在这里插入图片描述

3.Thread和Runnable是什么关系

Thread是个类(实现了Runnable接口)。
Runnable是个接口(只有个抽象的run方法)。
如何实现多线程:
Thread.start()创建子线程,再在子线程中调用Thread中实现好的run方法去执行相应的业务逻辑。才能让这个类具备多线程的特性。
这里其实就是Thread.start()方法会创建出子线程!!!所以多线程!!!
在这里插入图片描述

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号