2-8自由编程
编程如下,运行出来只有一种结果,是我代码哪里有问题吗?还是我的编译器运行有问题呀?
package imooc.com.thread;
//2-8 自由编程
class Cat implements Runnable {
@Override
public void run() {
// TODO Auto-generated method stub
for (int i = 0; i < 3; i++) {
System.out.println(Thread.currentThread().getName() + "A cat");
}
}
}
class Dog implements Runnable {
@Override
public void run() {
// TODO Auto-generated method stub
for (int i = 0; i < 3; i++) {
System.out.println(Thread.currentThread().getName() + "A dog");
}
}
}
public class Free2 {
public static void main(String[] args) {
Cat cat = new Cat();
Thread th1 = new Thread(cat);
th1.start();
Dog dog = new Dog();
Thread th2 = new Thread(dog);
th2.start();
for (int i = 0; i < 3; i++) {
System.out.println("main thread");
}
}
}
运行结果:
Thread-0A cat
Thread-0A cat
Thread-0A cat
main thread
main thread
main thread
Thread-1A dog
Thread-1A dog
Thread-1A dog
正在回答
同学你好,建议同学在主方法中如下图方式编写,因为线程执行较快。如果th1启动后再去创建Dog对象,th2线程。在Dog还未创建好的情况下,th1可能就已经运行完毕了。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星