摘要:与执行方法,是用来启动线程的,此时线程处于就绪状态,获得调度后运行方法。执行方法,相对于普通方法调用,在主线程调用。程序是顺序执行的,执行完才会执行下面的程序。
start与run
执行start方法,是用来启动线程的,此时线程处于就绪状态,获得调度后运行run方法。run方法执行结束,线程就结束。
执行run方法,相对于普通方法调用,在主线程调用。程序是顺序执行的,执行完才会执行下面的程序。
示例public class StartDemo extends Thread{ @Override public void run() { System.out.println(Thread.currentThread().getName()); } public static void main(String[] args) { StartDemo startDemo = new StartDemo(); startDemo.setName("startDemo"); startDemo.run(); startDemo.start(); } }
运行结果如下:
可见,执行run的时候,run方法是main这个线程执行的,执行start的时候,run方法是startDemo线程执行的。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/75221.html
摘要:定义等待该线程终止,比如线程调用了线程的,那么线程要等到线程执行完后,才可以继续执行。 定义 等待该线程终止,比如A线程调用了B线程的join,那么A线程要等到B线程执行完后,才可以继续执行。 示例 public class JoinDemo { static class JoinThread1 implements Runnable { Thread thre...
摘要:和是配套使用的,方法容易导致死锁。方法不会保证线程的资源正常释放方法给线程打个停止标记,将线程的中断状态设置为,并没有马上强制中断线程,线程是否中断由线程自己决定。终结状态,还是返回。方法判断当前线程是否中断,清除中断标志。 resume、suspend、stop resume和suspend是配套使用的,suspend方法容易导致死锁。 stop方法不会保证线程的资源正常释放 i...
摘要:不释放持有的锁,释放锁。在调用方法前,必须持有锁,调用唤醒,也要持有锁。休眠一定时间后,进入就绪状态。这两个都能被方法中断当前状态。用法方获取锁判断条件,不满足继续满足执行其他业务方获取锁改变条件通知为什么是而不是会一直循环,直到条件满足。 sleep和wait sleep是Thread类的方法,wait是Object的方法。 sleep可以到处使用,wait必须是在同步方法或者代码...
摘要:在指定毫秒数内,让正在执行的当前线程进入休眠期。示例运行结果如下结果可以看出,线程的两次时间相差毫秒,的两次时间相差毫秒,只影响自己的线程运行,不影响其他线程。 sleep 在指定毫秒数内,让正在执行的当前线程进入休眠期。 示例 public class SleepDemo extends Thread { @Override public void run() { ...
摘要:就绪状态调用或者由阻塞状态被解除时,进入就绪状态,此时,只能表示线程可以运行了,但不代表已经运行了,需要等待的调度。死亡状态当线程执行结束或者异常等,线程就会结束,进入死亡状态。 流程图 showImg(https://segmentfault.com/img/bVbuJ6f); 新建状态 当用new创建一个线程后,线程就处于新建状态,此时和其他普通java对象一样,由JVM创建内存空...
阅读 3739·2021-11-23 09:51
阅读 4275·2021-11-15 11:37
阅读 3503·2021-09-02 15:21
阅读 2725·2021-09-01 10:31
阅读 862·2021-08-31 14:19
阅读 831·2021-08-11 11:20
阅读 3293·2021-07-30 15:30
阅读 1674·2019-08-30 15:54