刚开始接触线程,练习的时候将代码A中的start()改成run(),结果不一样了。
附代码:
代码A- class Test extends Thread
- {
- private String name;
- Test(String name)
- {
- this.name = name;
- }
- public void run()
- {
- for (int x = 0;x<600 ;x++ )
- {
- System.out.println(name+"run..."+x);
- }
- }
- }
- class ThreadTest
- {
- public static void main(String[] args)
- {
- Test t1 = new Test("我是一号线程");
- Test t2 = new Test("二号线程是我");
- t1.start();
- t2.start();
- for (int x =0;x<600 ;x++ )
- {
- System.out.println("main....."+x);
- }
- }
- }
复制代码 代码B- class Test extends Thread
- {
- private String name;
- Test(String name)
- {
- this.name = name;
- }
- public void run()
- {
- for (int x = 0;x<600 ;x++ )
- {
- System.out.println(name+"run..."+x);
- }
- }
- }
- class ThreadTest
- {
- public static void main(String[] args)
- {
- Test t1 = new Test("我是一号线程");
- Test t2 = new Test("二号线程是我");
- t1.run();
- t2.run();
- for (int x =0;x<600 ;x++ )
- {
- System.out.println("main....."+x);
- }
- }
- }
复制代码 代码A的结果是三个线程相互穿插打印的
代码B是一个线程打印完再打印下一个
API中对start()方法的描述是:
使该线程开始执行;Java 虚拟机调用该线程的 run 方法。
为什么结果会不一样呢?
|
|