线程中,start和run的区别,以及为什么不能调用两次start
发布日期:2024-04-25 21:47:42 浏览次数:1 分类:技术文章

本文共 237 字,大约阅读时间需要 1 分钟。

首先调用run方法,只是单纯调用一个我们重写的run方法,不会创建一个线程,当前类也只作为一个普通类。

而调用start方法创建一个线程,start方法会先判断当前线程状态,如果是第一次调用,则会调用一个start0方法,是一个由native修饰的方法,底层有对应c语言写的API,调用会使操作系统状态转换为内核态,我们知道,只有内核态才能创建线程,所以调用start0会创建出一个线程。如果是第二次调用,在第一步判断时就会抛出一个异常,所以不能同时调用两次start方法。

转载地址:https://blog.csdn.net/zb200101/article/details/131795455 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:线程为什么不安全及简单解决
下一篇:线程中的生消模式和线程池

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月21日 20时01分52秒