JAVA-基础语法-多线程基础-start和run
【摘要】 JAVA-基础语法-多线程基础-start和run
看源码会看到start()方法内部调用了一个private native void start0()方法,native修饰符表示这个方法 是由JVM虚拟机内部的C代码实现的,不是由Java代码实现的。
用start方法才能真正启动线程,此时线程会处于就绪状态,一旦得到时间片,则会调用线程的run方法进入运行状态。
而run方法只是普通方法,如果直接调用run方法,程序只会按照顺序执行主线程这一个线程。
public class Test {
public static void main(String[] args) {
Thread thread = new Thread() {
public void run() {
pong();
}
};
//此处用start,则谁先谁后打印完全不一定
thread.start();
//此处用run,则必定按照顺序从上往下执行
thread.run();
System.out.println("ping");
}
static void pong() {
System.out.println("pong");
}
}
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)