不清楚什么意思,不过只换个顺序的话,这样子应该可以。呵呵!class TestE3server {
        String pathid;        public String startPDF_Production(String pathid) {                TestManage c = new TestManage();
//                c.test();
                  c.start();
                return "bbbbb";
        }}
class TestManage extends Thread {        public void test(){        System.out.println("aaaa");        }        public void run() {
          try {
            Thread.sleep(1000);
          } catch (InterruptedException ex) {
          }
          test();
        }
}
public class TestLifeWeb {        public static void main(String[] args) {
                TestE3server a = new TestE3server();                String cc = a.startPDF_Production("aaaaaaa");                System.out.println(cc);        }
}

解决方案 »

  1.   

    我程序原来的逻辑是这样的:public class TestE3server {
    String pathid;public String startPDF_Production(String pathid) {return "bbbbb";
    TestManage c = new TestManage();
    c.test();
    }}
    public class TestManage {public void test(){System.out.println("aaaa");}
    }
    public class TestLifeWeb {public static void main(String[] args) {
    TestE3server a = new TestE3server();String cc = a.startPDF_Production("aaaaaaa");System.out.println(cc);}
    }
    当我执行a.startPDF_Production时就把"bbbbb"赋值给cc了,可是这时startPDF_Production(String pathid)方法已经结束了,后面的语句不执行了!所以我把后面的语句放到ruturn语句的前面了,但是我还要求程序执行顺序是先执行ruturn语句,后执行后面的语句!
    1)snailjava(蜗牛),我觉得你的程序run()方法里的test()方法加在try语句的Thread.sleep(1000);后面好些,我不知道你为什么放在try,catch外边,可以解释下放在外边有何好处吗?
    2)多线程有两种方式,你的是直接继承thread类,还有一种传递runnable参数的,一般都是用第二种的!我这两天试着把程改成第二种方式吧!
    3)这个程序我觉得还有第三种方法,就是用join();我这两天也试一下了!
    谢谢snailjava(蜗牛) 您的支持!
      

  2.   

    我把我用传递Runnable对象的方法给做出来了!并经过测试了!snailjava(蜗牛) 您看下如何?
    还有没有其它的方法?用join()的方法我还没做出来!
    package com.test;/**
     * @author mengnan
     *
     * TODO To change the template for this generated type comment go to
     * Window - Preferences - Java - Code Style - Code Templates
     */
    public class TestJobId { public static void main(String[] args) {

    TestE3server a = new TestE3server(); String cc = a.startPDF_Production("aaaaaaa"); System.out.println(cc);



    }
    }
    /**
     * 
     * @param pathid
     * @return "bbbbb"
     */class TestE3server {
    String pathid; public String startPDF_Production(String pathid) { TestManage c = new TestManage();
    Thread thread = new Thread (c);
    thread.start();

    return "bbbbb";
    }}
     class TestManage implements Runnable {
    public TestManage() {

    }
        public void test(){    System.out.println("aaaa");    }    public void run() {
          try {
            Thread.sleep(1000);
            test();
          } catch (InterruptedException ex) {
          }    }
    }
      

  3.   

    谢谢snailjava(蜗牛) 兄弟的支持!我揭帖了!