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