新线程中的Java Run静态方法

时间:2013-12-20 18:49:40

标签: java multithreading methods static

我刚刚开始学习java,我遇到了涉及线程的轻微障碍。我有一个静态方法,我想在自己的线程中运行,这可能吗?在python我知道它看起来像这样: import thread;thread.start_new_thread( my_function, () ); 我知道如何通过实现Runnable或扩展线程来使用非静态方法进行线程化,但这不是我想要做的。

4 个答案:

答案 0 :(得分:9)

使用Thread的{​​{1}}方法调用run方法:

static

答案 1 :(得分:2)

以上内容会创建一个Static Method,在另一个Thread中执行:

public static void yourStaticMethod() {
    new Thread(new Runnable(){
        // This happens inside a different Thread
    }).start();
}

答案 2 :(得分:2)

你需要创建一个新的线程。(据我所知)

Thread t = new Thread(){
@Override
public void run(){ 
method();
}
static void method(){// do stuff
}
} 
//finally
t.start();

您始终可以在方法中创建一个类,并将更多参数传递给该线程。

你不需要用Thread包装Runnable。使用你喜欢的,这是一回事!

这个方法是静态的这一事实在这里并不重要。

如果静态方法确实只使用局部变量,没有对象字段或方法,那么它是线程安全的。如果它访问任何对象字段或方法,它可能不是线程安全的,具体取决于这些字段或方法的用途,在其他代码中。

您可以在静态方法或其他内容中创建新线程。这取决于你想做什么。

答案 3 :(得分:1)

如果您使用的是Java 8+,则还可以使用Java lambda表达式。像这样:

new Thread(()-> MyApp.myStaticMethod()).start();