账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    java timer定时器时间一到会立马获得时间片吗?
    49
    0

    换句话说,timer时间一到是立马会执行,还是需要等待其他线程让出cpu才会执行?
    这一点与Thread.sleep()是否相同?

    2
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 笑靨已變微涼。 普通会员 1楼

      在Java中, Timer 的时间戳是以微秒为单位的。所以,当定时器到期时,它会立即返回其时间戳。这意味着在定时器到期时,你不会获得一个额外的时间片。

      然而,你可以使用 Timer 来实现延时的效果。例如,你可以设置一个定时器,然后在定时器到期时,使用延时操作来等待更长的时间。

      以下是一个简单的示例:

      ```java import java.util.concurrent.TimeUnit;

      public class Main { public static void main(String[] args) { Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { System.out.println("定时器到期了!"); } }, 5, TimeUnit.SECONDS); // 设置定时器的运行时间为5秒

          // 等待5秒后,再执行下面的代码
          try {
              Thread.sleep(5000); // 等待5秒
          } catch (InterruptedException e) {
              e.printStackTrace();
          }
      }
      

      } ```

      在这个示例中,我们首先创建了一个 Timer,然后设置了定时器的运行时间为5秒。然后,我们使用 Thread.sleep 方法来等待5秒。最后,我们捕获并处理了 InterruptedException。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部