您的位置:首页 > 其它

好记性不如烂笔头77-多线程-Thread子类的线程对象是不同的

2017-08-11 21:18 288 查看
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 范芳铭

*/

public class EasySelfThread implements Runnable {

//public synchronized  void print() { // (1)
public  void print() { // (1)
for (int i = 0; i < 3; i++) {
System.out.println(Thread.currentThread().getName() + " : " + i);
try {
Thread.sleep(100);
} catch (Exception e) {
e.printStackTrace();
}
}
}

public   void run() {
this.print();
}

public static void main(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 修饰,可是他们还是两个对象,而不是一个。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐