线程的休眠Sleep
线程的休眠最重要的作用是 模拟网络延时和 进行实践倒计时
网络延时的是实现 模拟抢票系统 多个线程操作同一个对象
- 关于多个线程对同一个对象的操作
第一步是创建线程对象
后续是不断创建新的线程来对这个线程对象来进行操作
对同一个线程进行操作
package Study.Test.Lambda;
public class Ticket implements Runnable{
private int num=10;
@Override
public void run() {
while (true) {
System.out.println(Thread.currentThread().getName() + "get" + num-- + " ticket");
//获取当前线程的名字来表示谁抢到了票
if(num<=0){
break;
}
}
}
public static void main(String[] args) {
//创建线程操作对象
Ticket m = new Ticket();
//创建多个线程来操作受操作对象
new Thread(m,"小明").start();
new Thread(m,"小明的老婆").start();
new Thread(m,"隔壁老王").start();
}
}
添加延时操作 就是添加 每次抢完票的后续的线程对应的延时
package Study.Test.Lambda;
//JAVA的十秒倒计时
public class CountDown implements Runnable{
@Override
public void run() {
int num =10;
while (true){
System.out.println(num--);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
if(num<=0){
break;
}
}
}
public static void main(String[] args) {
Thread t = new Thread(new CountDown());
t.start();
}
}
package Study.Test.Lambda;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Time {
public static void main(String[] args) {
while(true)
{ Date time = new Date(System.currentTimeMillis());
//获得当前时间戳
System.out.println(new SimpleDateFormat("HH:mm:ss").format(time));
//格式化时间戳来进行对应的输出操作
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
总结:
Sleep函数是Thread类特有的可以调整线程的运行的一个函数 对应的线程运行过程中需要停止的时间限制
有两个基本点作用
延时设置和倒计时 可以用在时钟的设置上