/**
* join:合并线程
* @author Administrator
*
*/
public class Joining extends Thread{
public static void main(String[] args) throws InterruptedException {
Joining demo=new Joining();
Thread t=new Thread(demo);//新生
t.start();//就绪
//cpu调度就运行
for (int i = 0; i < 200; i++) {
if (i==50) {
t.join(); //main()阻塞,等待该线程终止。
}
System.out.println("main...../"+i);
}
}
@Override
public void run() {
for (int i = 0; i < 200; i++) {
System.out.println("join...../"+i);
}
}
}
public class Yield extends Thread{
public static void main(String[] args) {
Yield demo=new Yield();
Thread t=new Thread(demo);//新生
t.start();//就绪
//cpu调度就运行
for (int i = 0; i < 1000; i++) {
if (i%20==0) {
//暂停当前正在执行的线程对象,并执行其他线程。
Thread.yield();//写在哪个线程里面就暂停哪个线程
}
System.out.println("main...../"+i);
}
}
@Override
public void run() {
for (int i = 0; i < 1000; i++) {
System.out.println("yield...../"+i);
}
}
}
/**
* sleep
* 倒计时
* 1、倒数10个数,一秒内打印一个
* 2、倒计时
* @author Administrator
*
*/
public class sleepDemo {
public static void main(String[] args) throws InterruptedException {
Date endTime=new Date(System.currentTimeMillis()+10*1000);
long end=endTime.getTime();
while(true){
//输出
System.out.println(new SimpleDateFormat("HH:mm:ss").format(endTime));
//构建下一秒时间
endTime=new Date(endTime.getTime()-1000);
//等待一秒
Thread.sleep(1000);
//10秒以内就继续,否则退出
if (end-10000>endTime.getTime()) {
break;
}
}
}
public static void test1() throws InterruptedException{
int num=10;
while(true){
System.out.println(num--);
Thread.sleep(1000);//sleep为静态方法,暂停
if (num<=0) {
break;
}
}
}
}
模拟网络延时
/**
* sleep模拟网络延时
* @author Administrator
*
*/
public class Demo02 {
public static void main(String[] args) {
//真实角色
ticket12306 web=new ticket12306();
//代理
Thread Tom=new Thread(web, "张三");
Thread Jess=new Thread(web, "李四");
Thread Chois=new Thread(web, "王二");
//启动线程
Tom.start();
Jess.start();
Chois.start();
}
}
class ticket12306 implements Runnable{
private int num=500;
@Override
public void run() {
while(true){
if (num<=0) {
break;//跳出循环
}
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+"抢到了--》"+num--);
}
}
}