java中的线程?

java中的线程?,java,multithreading,Java,Multithreading,嗨,我在一个个人项目上工作,我有以下问题,我知道我必须使用线程来完成这项工作,但任何帮助都将不胜感激 我想构建一个休眠2秒或2000毫秒的线程,然后在2秒后运行一个方法,我怎么做我知道如何使休眠2秒的线程运行,但不知道如何使方法/函数在2秒后运行如果在主线程中调用sleep(2000),整个应用程序将被阻塞:) 诀窍是不要在主线程中调用它。Java中有一种东西是ScheduledExecutorService,它将非常适合您。在这里查看示例: 使用它将允许您将自己选择的操作“分派”到主线程之外,

嗨,我在一个个人项目上工作,我有以下问题,我知道我必须使用线程来完成这项工作,但任何帮助都将不胜感激

我想构建一个休眠2秒或2000毫秒的线程,然后在2秒后运行一个方法,我怎么做我知道如何使休眠2秒的线程运行,但不知道如何使方法/函数在2秒后运行如果在主线程中调用sleep(2000),整个应用程序将被阻塞:)

诀窍是不要在主线程中调用它。Java中有一种东西是
ScheduledExecutorService
,它将非常适合您。在这里查看示例:

使用它将允许您将自己选择的操作“分派”到主线程之外,从而创建更多的副线程,并安排它们以自己选择的特定时间偏移执行


您只需要创建一个实现
Runnable
的类,并在
run
方法的实现中执行您需要执行的任何操作。唯一的其他步骤是将这些实例(或者其他类,如果您需要提交不同的“作业”)提交到您创建的
ScheduledExecutorService
实例。

run
方法中插入的循环中执行线程休眠(在所需的时间内)。然后,调用循环体中的方法/函数。我建议您仔细阅读线程生命周期。

我尝试创建一个线程,然后在启动线程后立即执行该方法,我知道这是错误的,但我没有更好的想法。您是否阅读了有关Java线程的任何资料?你在谷歌上搜索过任何页面吗?所以你想睡觉然后调用一个自定义函数?你为什么不那样做呢?