run和start方法的区别

run和start方法的区别
①位置,也就是方法所处的位置。
run方法和start的方法都位于thread的类里面。不过 run方法是重写runnable接口的,这一点它是和start方案有点区别。
②类型,也就是方法是否为同步方法。
run方法是非同步方法,而star方法是同步方法,意味着多个线程同时执行start方法时不会存在线程安全问题。
③作用,主要是看他们各自的功能有什么不同。
run方法的作用是存放任务代码的,而start的方法的作用是启动线程,线程启动以后它会自动去执行run方法,
④线程数量,主要是看方法在执行过程中是否会产生新的线程。
也就是说我们在方法执行的过程中,是否会产生新的线程。run方法在执行过程中不会产生新的线程,而start方法在执行过程中会产生一个新线程。
(因此如果都在主方法打印线程名称的话,run方法打印的是main,证明没有新线程产生但是start打印的是线程 thread- +线程编号,说明产生了新线程)

⑤调用次数,主要是看方法调用多次,是否会出现新的问题
run方法可以被调用,无数次都不会产生问题,而start方法虽然说它可以被调用无数次,但是它会出问题原因。在于线程只能被启动一次,它不能重复启动(一般我们重复启动线程就会造成这个异常)
 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值