java 中sleep()方法或者wait()方法的使用

时间:2022-01-14 15:33:50
比如我在执行某个方法后 

想停顿3秒 

然后去执行另外一个 方法 
(注意:不是循环执行 之要执行一次) 

希望谁能给个例子 

还有就是 尽量多给点注释··· 
分就送你了

6 个解决方案

#1


执行方法1;
Thread.sleep(3000);
执行方法2;
不知道楼主的意思是不是这个.

#2


就是这个意思。。。

#3


执行方法1; 
Thread.sleep(3000); 
执行方法2; 


是这样
sleep记得要捕获异常就可以了


#4


sleep是对于当前线程来说的。而wait是对于当前对像的当前线程来说的。
当调用wait阻塞当前线程后,需要在另的线程上调用当前对像的notifyAll后才能唤醒当前线程。
根椐楼主的需要,只要在当前线程加入Thread.sleep(3000)就行了,然后再加个tyr,catch块入理下异常。  

#5



package com.yhw.gui;

import java.util.concurrent.TimeUnit;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;

public class SubmitSwingProgram extends JFrame {

JLabel label;

public SubmitSwingProgram() {
super("Hello Swing");
label = new JLabel("A Label");
add(label);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(300, 100);
setVisible(true);
}

static SubmitSwingProgram ssp;

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {

@Override
public void run() {
ssp = new SubmitSwingProgram();
}

});

try {
TimeUnit.SECONDS.sleep(3);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

SwingUtilities.invokeLater(new Runnable() {

@Override
public void run() {
ssp.label.setText("Hey! This is different!");
}

});

}

}

#6


引用 4 楼 chenyuelin311 的回复:
sleep是对于当前线程来说的。而wait是对于当前对像的当前线程来说的。
当调用wait阻塞当前线程后,需要在另的线程上调用当前对像的notifyAll后才能唤醒当前线程。
根椐楼主的需要,只要在当前线程加入Thread.sleep(3000)就行了,然后再加个tyr,catch块入理下异常。


GOOD

#1


执行方法1;
Thread.sleep(3000);
执行方法2;
不知道楼主的意思是不是这个.

#2


就是这个意思。。。

#3


执行方法1; 
Thread.sleep(3000); 
执行方法2; 


是这样
sleep记得要捕获异常就可以了


#4


sleep是对于当前线程来说的。而wait是对于当前对像的当前线程来说的。
当调用wait阻塞当前线程后,需要在另的线程上调用当前对像的notifyAll后才能唤醒当前线程。
根椐楼主的需要,只要在当前线程加入Thread.sleep(3000)就行了,然后再加个tyr,catch块入理下异常。  

#5



package com.yhw.gui;

import java.util.concurrent.TimeUnit;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;

public class SubmitSwingProgram extends JFrame {

JLabel label;

public SubmitSwingProgram() {
super("Hello Swing");
label = new JLabel("A Label");
add(label);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(300, 100);
setVisible(true);
}

static SubmitSwingProgram ssp;

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {

@Override
public void run() {
ssp = new SubmitSwingProgram();
}

});

try {
TimeUnit.SECONDS.sleep(3);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

SwingUtilities.invokeLater(new Runnable() {

@Override
public void run() {
ssp.label.setText("Hey! This is different!");
}

});

}

}

#6


引用 4 楼 chenyuelin311 的回复:
sleep是对于当前线程来说的。而wait是对于当前对像的当前线程来说的。
当调用wait阻塞当前线程后,需要在另的线程上调用当前对像的notifyAll后才能唤醒当前线程。
根椐楼主的需要,只要在当前线程加入Thread.sleep(3000)就行了,然后再加个tyr,catch块入理下异常。


GOOD