public class ThreadDemo extends Thread { @Override public void run() { for(int i = 0; i <= 5; i++) { try { System.out.println(currentThread().getName() + "---" + i); sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } } public static void main(String[] args) { ThreadDemo t = new ThreadDemo(); t.setName("t"); t.start(); //打印的是t线程 t.run(); //打印主线程main } }
结果:
分析:
1 程序运行开始,jvm会自动创建线程main,也就是主线程
2 主线程在执行代码时,创建一个线程,当线程调用start()后,就启用了线程,
主线程继续往下执行代码。被启用的线程内部会自动调用run方法(start0() 本地方法或者说底层操作系统),
所以此时run方法是在该线程内运行
3 实例.run()仅仅只是调用对象的方法,与普通方法无差别,并没有启动新的线程,所以该方法还是在main线程内使用
内容来源于网络如有侵权请私信删除
文章来源: 博客园
- 还没有人评论,欢迎说说您的想法!