面试-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()方法会创建出子线程!!!所以多线程!!!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值