servlet 多线程问题(只有3分,谢谢)

一个servlet 有一个同步方法或者同步块,两个子类servlet多线程调用或者访问时,子类servlet之间能起到同步 or 阻塞等待的作业么?

[quote]调用此父类的同步块或者同步方法时不知道能实现需要么?同步有效么?[/quote]

能实现需要。有效。 举个例子说明:
[code="java"]
class A {

private static final Object lock = new Object();

protected void asyn(String name) {
    System.out.println(name + "进入了");
    sleep();
    System.out.println(name + "出去了");
}

protected void sync(String name) {
    synchronized (lock) {
        System.out.println(name + "进入了");
        sleep();
        System.out.println(name + "出去了");
    }
}

private void sleep() {
    try {
        Thread.sleep(2000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}

}

class Asyn extends A implements Runnable {

private String name;

public Asyn(String name) {
    this.name = name;
}

@Override
public void run() {
    for (int i = 0; i < 5; i++) {
        asyn(name);
    }
}

}

class Sync extends A implements Runnable {

private String name;

public Sync(String name) {
    this.name = name;
}

@Override
public void run() {
    for (int i = 0; i < 5; i++) {
        sync(name);
    }
}

}

public class Test {

public static void main(String[] args) {
    // 同步,可以看到只会有一个人进入,他出去之后另外的人才能进入
    Thread t1 = new Thread(new Sync("rod"));
    Thread t2 = new Thread(new Sync("bob"));
    t1.start();
    t2.start();

    // 异步,可以看到会有多个人进入
    // Thread t3 = new Thread(new Asyn("rod"));
    // Thread t4 = new Thread(new Asyn("bob"));
    // t3.start();
    // t4.start();
}

}
[/code]

可以. 只要你是调用超类那个synchronized方法或块。

你确定每个servlet的classloader是一样的么?

不一样的话,synchronized没有用

什么叫做子类的servlet?

你的web.xml如何配置的,贴上来看看

好吧,我给你贴个url,保证解决问题。
[url]http://aguang520.iteye.com/blog/805393[/url]
ps:就不能多用用搜索引擎么,百度可不是光用来搜迅雷小电影的。hoho