首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java在新线程中运行静态方法

问Java在新线程中运行静态方法
EN

Stack Overflow用户
提问于 2013-12-20 18:49:39
回答 4查看 8.6K关注 0票数 3

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-12-20 18:51:44

让Thread的run方法调用static方法:

代码语言:javascript
复制
new Thread(Call::yourStaticMethod).start();
票数 9
EN

Stack Overflow用户

发布于 2013-12-20 18:51:33

上面的内容将创建一个在另一个Static Method中执行的Thread。

代码语言:javascript
复制
public static void yourStaticMethod() {
    new Thread(new Runnable(){
        // This happens inside a different Thread
    }).start();
}
票数 2
EN

Stack Overflow用户

发布于 2013-12-20 18:56:04

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

代码语言:javascript
复制
Thread t = new Thread(){
@Override
public void run(){ 
method();
}
static void method(){// do stuff
}
} 
//finally
t.start();

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

您不需要用线程包装可运行的。用任何你喜欢的,都是一样的东西!

这个方法是静态的,这一点并不重要。

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

您可以在静态方法内部创建一个新线程,也可以创建其他内容。这取决于你想做什么。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20710140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档