首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

ant 多线程只执行第一个线程 其余的都不执行解决方法

2012-04-19 
ant 多线程只执行第一个线程 其余的都不执行Java codepackage com.loyupublic final class Word2Swf {pri

ant 多线程只执行第一个线程 其余的都不执行

Java code
package com.loyu;public final class Word2Swf {    private static  Word2Swf word2Swf = null;//= new Word2Swf();    private Word2Swf(){            }    public static Word2Swf getInstance(){        if(word2Swf==null)            word2Swf = new Word2Swf();        return word2Swf;    }        public synchronized String word2Swf(String root,String target){        Process process;        try {            process = Runtime.getRuntime().exec("D:\\FlashPaper2.2\\FlashPrinter.exe \"d:\\cccc.docx\" -o \"d:\\"+target+".swf\"");            process.waitFor();        } catch (Exception e) {            e.printStackTrace();        }        return null;    }}

Java code
package com.loyu.test;import java.io.IOException;import com.loyu.Word2Swf;public class Test {    public static void main(String[] args) throws IOException {        System.out.println(2222);        new Thread(new Word2SwfThread("1"),"").start();        new Thread(new Word2SwfThread("2"),"").start();        new Thread(new Word2SwfThread("3"),"").start();        new Thread(new Word2SwfThread("4"),"").start();        new Thread(new Word2SwfThread("5"),"").start();        new Thread(new Word2SwfThread("6"),"").start();        System.out.println(3333);            }    }class Word2SwfThread implements Runnable{    private String name;    public Word2SwfThread(String name){        this.name=name;    }    @Override    public void run() {        System.out.println(1);//        try {            Word2Swf.getInstance().word2Swf(null, name);//        } catch (Exception e) {//            e.printStackTrace();//        }    }}


XML code
<?xml version="1.0" encoding="gbk" ?><project name="HelloWorld" default="run" basedir=".">    <property name="src" value="src" />    <property name="dest" value="classes" />    <property name="hello_jar" value="hello.jar" />        <target name="init">        <echo message="生成编译目录"/>        <mkdir dir="${dest}" />    </target>        <target name="compile" depends="init">        <echo message="开始编译"/>        <javac includeantruntime="on" srcdir="${src}" destdir="${dest}" />    </target>        <target name="jar" depends="compile">        <echo message="打jar包"/>        <jar jarfile="${hello_jar}" basedir="${dest}" />    </target>        <target name="run" depends="jar">        <echo message="执行程序"/>        <java classname="com.loyu.test.Test" classpath="${hello_jar}" />    </target>        <target name="clean">        <delete dir="${dest}" />        <delete file="${hello_jar}" />    </target>        <target name="rerun" depends="clean, run">        <ant target="clean" />        <ant target="run" />    </target></project>


几个线程都执行了 但是线程里面的方法只执行了一次,在线登陆速度解决

[解决办法]
探讨


都做了 是用于word2Swf(String root,String target)方法是一个同步方法,在还没有结束时,ant的执行就结束了造成的,应该是ant里面有一个什么属性没有配置造成的

热点排行