Java线程问题

Java中线程对象什么用?有谁知道?

3个回答

亲,测试例子
[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

My940935011
My940935011 能给个实例吗?
接近 8 年之前 回复

在同个线程里,在不同的类中都能取到存储在线程对象里的同一对象,不必进行对象的传递
如存储在session.setAttribute() 中的对象在同一会话中都取到的是同一对象,而并没有进行传递

My940935011
My940935011 能给个实例吗?
接近 8 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问