异步运行任务
你可以使用 runTaskAsynchronously
从主线程异步运行代码。这对于进行密集的数学运算或数据库操作很有用,因为它们会阻止主线程冻结(以及服务器滞后)。
很少有 Bukkit API 方法是线程安全的,因此如果从主线程异步调用,很多都会导致未定义的行为。
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
Bukkit.getLogger().info("This message was printed to the console asynchronously");
//Bukkit.broadcastMessage is not thread-safe
}
});