Java中线程对象什么用?有谁知道?
亲,测试例子
[code="java"]
public static void main(String[] args) {
final List singelists = new ArrayList();
long startTime = System.nanoTime();
for (int i = 0; i < 900; i++) {
singelists.add(i);
System.out.println(i);
}
long endTime = System.nanoTime();
System.out.println("单线程运行时间:" + (endTime - startTime));
final List lists = new ArrayList();
final long newStartTime = System.nanoTime();
new Thread(){
public void run() {
for (int i = 0; i < 300; i++) {
System.out.println(this.getName() + ":" + i);
lists.add(i);
}
if(lists.size() == 900){
System.out.println(this.getName() + "-多线程运行时间:" + (System.nanoTime() - newStartTime));
}
};
}.start();
new Thread(){
public void run() {
for (int i = 300; i < 600; i++) {
System.out.println(this.getName() + ":" + i);
lists.add(i);
}
if(lists.size() == 900){
System.out.println(this.getName() + "-多线程运行时间:" + (System.nanoTime() - newStartTime));
}
};
}.start();
new Thread(){
public void run() {
for (int i = 600; i < 900; i++) {
System.out.println(this.getName() + ":" + i);
lists.add(i);
}
if(lists.size() == 900){
System.out.println(this.getName() + "-多线程运行时间:" + (System.nanoTime() - newStartTime));
}
};
}.start();
}
[/code]
测试结果:
[code="java"]
单线程运行时间:18768865
Thread-0-多线程运行时间:15046605
[/code]
亲,简单的说多条腿跑的更快~ :D
在同个线程里,在不同的类中都能取到存储在线程对象里的同一对象,不必进行对象的传递
如存储在session.setAttribute() 中的对象在同一会话中都取到的是同一对象,而并没有进行传递