public class A implements Runnable {
Vector vec = new Vector(); private Thread netthread = new Thread(this); public void run() {
System.out.println("vec.size");
vec = new Vector();
vec.addElement("1");
} public Vector communicate() {
// 先执行这个
netthread.start();
// 再执行这个
System.out.println("vec.size==" + vec.size());
return vec;
} public static void main(String[] args) {
A a = new A();
a.communicate();
}
}result:
vec.size==0
vec.size如何让程序,
先netthread.start();
后System.out.println("vec.size==" + vec.size());

解决方案 »

  1.   

    import java.util.*;public class A implements Runnable {
    Vector vec = new Vector();private Thread netthread = new Thread(this);public void run() {
    System.out.println("vec.size");
    vec = new Vector();
    vec.addElement("1");
    }public Vector communicate() {
    // 先执行这个
    netthread.setPriority(10);
    netthread.start();
    // 再执行这个
    System.out.println("vec.size==" + vec.size());
    return vec;
    }public static void main(String[] args) {
    A a = new A();
    a.communicate();
    }
    }result:
    vec.size
    vec.size==1
      

  2.   

    */
    public class A implements Runnable {
        Vector vec = new Vector();    private Thread netthread = new Thread( this );    public void run() {
            System.out.println( "vec.size" );
            vec = new Vector();
            vec.addElement( "1" );
        }    public Vector communicate() {
    // 先执行这个
            netthread.start();
            try{
                Thread.sleep(10);
            } catch(Exception ex) {
                ex.printStackTrace();
            }
    // 再执行这个
            System.out.println( "vec.size==" + vec.size() );
            return vec;
        }    public static void main( String[] args ) {
            A a = new A();
            a.communicate();
        }
    }
      

  3.   

    既然要确定运行次序,为什么要用不同Thread呢?既然用了Thread,为什么不用join()来确定次序呢?
      

  4.   

    import java.util.*;public class ATest implements Runnable {
        Vector vec = new Vector();    private Thread netthread = new Thread(this);    public void run() {
            System.out.println("vec.size");
            vec = new Vector();
            vec.addElement("1");
        }    public Vector communicate() {
            // ?????
            netthread.setPriority(10);
            netthread.start();
            // ?????
            try {
                netthread.join();
            }
            catch (Exception e){
                e.printStackTrace();
            }
            System.out.println("vec.size==" + vec.size());
            return vec;
        }    public static void main(String[] args) {
            ATest a = new ATest();
            a.communicate();
        }
    }