MAN*_*ANN 152
Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
// code goes here.
}
});
t1.start();
Run Code Online (Sandbox Code Playgroud)
要么
new Thread(new Runnable() {
@Override
public void run() {
// code goes here.
}
}).start();
Run Code Online (Sandbox Code Playgroud)
要么
new Thread(() -> {
// code goes here.
}).start();
Run Code Online (Sandbox Code Playgroud)
要么
Executors.newSingleThreadExecutor().execute(new Runnable() {
@Override
public void run() {
myCustomMethod();
}
});
Run Code Online (Sandbox Code Playgroud)
要么
Executors.newCachedThreadPool().execute(new Runnable() {
@Override
public void run() {
myCustomMethod();
}
});
Run Code Online (Sandbox Code Playgroud)
Noe*_*l M 129
创建一个实现该Runnable
接口的类.将要运行的代码放在run()
方法中 - 这是您必须编写以符合Runnable
接口的方法.在"主"线程中,创建一个新Thread
类,将构造函数传递给您的实例Runnable
,然后调用start()
它.start
告诉JVM做魔术来创建一个新线程,然后run
在那个新线程中调用你的方法.
public class MyRunnable implements Runnable {
private int var;
public MyRunnable(int var) {
this.var = var;
}
public void run() {
// code in the other thread, can reference "var" variable
}
}
public class MainThreadClass {
public static void main(String args[]) {
MyRunnable myRunnable = new MyRunnable(10);
Thread t = new Thread(myRunnable)
t.start();
}
}
Run Code Online (Sandbox Code Playgroud)
快来看看Java的并发教程吧.
如果要经常调用您的方法,那么每次创建新线程可能都不值得,因为这是一项昂贵的操作.最好使用某种线程池.看一看Future
,Callable
,Executor
类的java.util.concurrent
包.
Aar*_*ohn 53
在Java 8中,您可以使用一行代码执行此操作.
如果您的方法不接受任何参数,则可以使用方法参考:
new Thread(MyClass::doWork).start();
Run Code Online (Sandbox Code Playgroud)
否则,您可以在lambda表达式中调用该方法:
new Thread(() -> doWork(someParam)).start();
Run Code Online (Sandbox Code Playgroud)
如果您至少使用 Java 8,则可以使用CompletableFuturerunAsync
类中的方法
CompletableFuture.runAsync(() -> {...});
Run Code Online (Sandbox Code Playgroud)
如果您需要返回结果,请supplyAsync
改用
CompletableFuture.supplyAsync(() -> 1);
Run Code Online (Sandbox Code Playgroud)
调用事物的另一个更快的选择(例如DialogBoxes和MessageBoxes以及为非线程安全的方法创建单独的线程)将是使用Lamba Expression
new Thread(() -> {
"code here"
}).start();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
248304 次 |
最近记录: |