俩个或多个线程可以共享对象中的数据
例如:
public class ThreadTest extends Thread{
private Student student;
public ThreadTest3(String name) {
super(name);
}
public Student getStudent() {
return student;
}
public void setStudent(Student student) {
this.student = student;
}
public void run() {
String name = Thread.currentThread().getName();
for(int i=0;i<10;i++){
//先把当前线程的名字设置为student的名字
student.setName(name);
//再马上拿出名字打印出来
System.out.println(name+": "+student.getName());
}
}
public static void main(String[] args) {
Student s = new Student();
ThreadTest t1 = new ThreadTest("线程1");
t1.setStudent(s);
ThreadTest t2 = new ThreadTest("线程2");
t2.setStudent(s);
t1.start();
t2.start();
}
}
例如:
Runnable run = new Runnable() {
private int x;
public void run() {
String name = Thread.currentThread().getName();
for(int i=1;i<=500;i++){
x++;
}
System.out.println(name+" x = "+x);
}
};
Thread t1 = new Thread(run);
Thread t2 = new Thread(run);
t1.start();
t2.start();