Thread子类的线程对象是不同的。 比如: EasySelfThread thread = new EasySelfThread(); //同一个线程对象 Thread t1 = new Thread(thread, “t1”); Thread t2 = new Thread(thread, “==t2”);//(3) 由于t1和t2是两个对象,,所以它们所启动的线程可同时访问run()函数。
Thread子类的线程对象是不同的java源代码 package com.thread;
/** * 通过Thread的子类产生的线程对象,是不同对象的线程 * * @author 范芳铭 */
{() { // (1) for (int i = 0; i < 3; i++) {System.out.println(Thread.currentThread().getName() + ” : ” + i);try {Thread.sleep(100);} catch (Exception e) {e.printStackTrace();}}}() {this.print();}(String[] args) {EasySelfThread thread = new EasySelfThread();//同一个线程对象Thread t1 = new Thread(thread, “t1”);Thread t2 = new Thread(thread, “==t2”);//(3)t1.start();t2.start();}}
运行结果 t1 : 0 ==t2 : 0 ==t2 : 1 t1 : 1 ==t2 : 2 t1 : 2
也可以把run方法用 synchronized 修饰,但是他们还是两个对象,而不是一个。
有一些喷着香水闻不到的空气,有一些在写字楼里永远遇不见的人。