为什么启动线程是start方法?

为什么启动线程start方法

 

十年可见春去秋来,百年可证生老病死,千年可叹王朝更替,万年可见斗转星移。

             凡人如果用一天的视野,去窥探百万年的天地,是否就如同井底之蛙?

 

背景启动线程start() 还是run() 方法?相信这个问题很多人都知道是start(),但是如果我再问下去呢,为什么是start()?你会如何作答呢?

 

一、理论课

当用start()开始一个线程后,线程就进入就绪状态,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行;但是这并不意味着线程就会立即运行,只有当cpu分配时间片时,这个线程获得时间片时,才开始执行run()方法;start()方法去调用run(),而run()方法则是需要去重写的,其包含的是线程的主体(真正的逻辑)。

二、线程六大状态

Java 中,定义了 6 种线程状态,NEWRUNNABLEBLOCKEDWAITINGTIMED_WAITING和TERMINATED

1 public enum State{ 2 NEW, 3 RUNNABLE, 4 BLOCKED, 5 WAITING, 6 TIMED_WAITING, 7 TERMINATED; 8 }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zygfyx.html