用Java实现for循环调用一个方法每调用一次sleep 三秒钟
时间: 2024-02-03 21:15:55 浏览: 123
可以使用Java中的Thread.sleep方法实现:
```java
for (int i = 0; i < n; i++) {
// 调用方法
myMethod();
try {
// 休眠3秒
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
// 定义要调用的方法
public void myMethod() {
// TODO: 方法的具体实现
}
```
其中n表示要调用方法的次数,可以根据需要替换成具体的数字或变量。在每次调用方法后,使用try-catch语句捕获InterruptedException异常,并调用Thread.sleep方法休眠3秒钟。注意需要处理InterruptedException异常,否则会编译出错。
相关问题
)自定义一个类Ticket,使其实现Runnable接口,并在该类中创建int类型私有属性tickets,赋初值为10。 2)在Ticket类中重写run()方法,在方法内编写一个while循环。循环体内判断ticket值,当大于0时,使用sleep(long millis)方法使线程休眠1秒钟,并打印:当前线程名称+“正在出售第”+循环次数;否则结束循环。每执行一次while循环,tickets值减一。 3)编写测试类Example05_4,在Example05_4类的main()方法中,创建一个Ticket对象,利用Thread的构造方法创建三个线程对象并命名,并开启三个线程的start()方法。
好的,我理解了你的问题。下面是符合你要求的Java代码:
Ticket.java:
```
public class Ticket implements Runnable {
private int tickets = 10;
@Override
public void run() {
int count = 0;
while (tickets > 0) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
count++;
System.out.println(Thread.currentThread().getName() + " 正在出售第 " + count + " 张票");
tickets--;
}
}
}
```
Example05_4.java:
```
public class Example05_4 {
public static void main(String[] args) {
Ticket ticket = new Ticket();
Thread thread1 = new Thread(ticket, "窗口1");
Thread thread2 = new Thread(ticket, "窗口2");
Thread thread3 = new Thread(ticket, "窗口3");
thread1.start();
thread2.start();
thread3.start();
}
}
```
这段代码创建了一个名为Ticket的类,该类实现了Runnable接口,并包含一个名为tickets的私有int类型属性,其初始值为10。在该类中,重写了run()方法,该方法包含一个while循环,通过判断tickets的值,不断售出票,并在控制台输出当前线程名称和票的编号。当售出所有票时,结束循环。
在Example05_4类中的main()方法中,创建了一个Ticket对象,并利用Thread的构造方法创建了三个线程对象。然后,通过调用Thread对象的start()方法,开启三个线程,让它们执行Ticket对象的run()方法,售出票。
java(1)编写三个线程分别显示各自的运行时间,第一个线程每隔1秒钟运行一次,第二个线程每隔5秒钟运行一次,第三个线程每隔10秒钟运行一次。
```java
public class MyThread extends Thread {
private String name;
private int interval;
public MyThread(String name, int interval) {
this.name = name;
this.interval = interval;
}
public void run() {
int count = 0;
while (true) {
System.out.println(name + "运行了" + count * interval + "秒");
count++;
try {
Thread.sleep(interval * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
MyThread t1 = new MyThread("线程1", 1);
MyThread t2 = new MyThread("线程2", 5);
MyThread t3 = new MyThread("线程3", 10);
t1.start();
t2.start();
t3.start();
}
}
```
这是一个简单的实现,分别创建三个线程并启动,每个线程都有各自的名称和运行时间间隔。在 run 方法中,使用一个计数器变量来统计运行时间,每次循环输出线程名称和计数器乘以时间间隔的值,并调用 Thread.sleep 方法来使线程休眠相应的时间。
阅读全文