【java-面试题】start和run的区别

【java-面试题】start和run的区别

在run方法内部,只是单纯的描述了该线程要执行的内容。run方法是线程的入口。

在start方法内部,会调用到系统api,从而在系统内核中创建出线程,创建线程后,再自动调用run方法。

在代码中,我们通过重写run方法创建一个线程对象,但创建一个线程对象并不意味着线程开始执行了。而调用start方法后,才真正在操作系统底层创建出一个线程,同时start方法内部还会自动调用run方法,这才意味着创建了一个线程并让它开始独立执行

所以如果我们在编写代码的时候,调用run方法,程序依然会执行run方法里面的命令,但是该命令是被当下线程执行的,这就不是并发编程了。多线程编程是为了实现并发编程,提高计算机处理问题的效率存在的。

相关推荐
华仔啊2 小时前
主线程存了用户信息,子线程居然拿不到?ThreadLocal 背锅
java·后端
间彧2 小时前
Spring Boot项目中,Redis 如何同时执行多条命令
java·redis
召摇2 小时前
如何避免写垃圾代码:Java篇
java·后端·代码规范
vker2 小时前
第 1 天:单例模式(Singleton Pattern)—— 创建型模式
java·设计模式
我不是混子2 小时前
什么是内存泄漏?
java
程序员小假2 小时前
我们来说说当一个线程两次调用 start() 方法会出现什么情况?
java·后端
SimonKing3 小时前
Archery:开源、一站式的数据库 SQL 审核与运维平台
java·后端·程序员
皮皮林55115 小时前
IDEA 源码阅读利器,你居然还不会?
java·intellij idea
卡尔特斯19 小时前
Android Kotlin 项目代理配置【详细步骤(可选)】
android·java·kotlin
白鲸开源19 小时前
Ubuntu 22 下 DolphinScheduler 3.x 伪集群部署实录
java·ubuntu·开源