java中run方法之前执行线程的其他方法

时间:2013-12-30 14:56:42

标签: java multithreading

在我的程序中,我调用线程来完成一些工作,但是另一种线程类方法在run方法之前执行。

public class Verify extends JFrame implements Runnable 
{
    long Local_cid;
    String local_path;
    static boolean isIntialised=false;
    JProgressBar bar;

    final static ArrayList<Long> ContactList=new ArrayList<>();
    final static ArrayList<Long> Scanned=new ArrayList<>();
    static boolean flag=true;
    static boolean Duplicate_flag=true;
    boolean[] flags=new boolean[6];

    public Verify(long ID,String path) 
    {
        Local_cid=ID;
        local_path=path;

    }

    public boolean[] Return_Flag()
    {

        System.err.println("Verify Id");
        return  flags;

    }

    public void dispose_Frame()
    {
        System.err.println("Executing First");
        dispose();
    }

    @Override
    public void run() 
    {
        System.err.println("This should Executed First");

    }

}

当我通过启动调用调用此线程时,输出如下:

  

验证ID

     

执行第一

     

这应该先执行

2 个答案:

答案 0 :(得分:0)

您应该遵循Java编码标准样式指南,这将使人们更容易阅读。

您发布的代码中没有任何内容可以调用Return_Flag(),因此您必须在其他地方调用它 - 可能来自首先创建线程的代码。

只有在线程启动后才会调用Run,而其他线程仍在同时运行,并且可以按照自己喜欢的顺序调用他们喜欢的任何方法......

答案 1 :(得分:0)

我100%确定你在实际启动线程之前在代码中的某个地方调用这些方法。只是看起来更小心,你会发现它。