一、线程的状态

1.新生状态
2.就绪状态
3.运行状态
4.就绪状态
5.死亡状态

二、停止线程

1.自然终止:线程体正常执行完毕
2.外部干涉
1)线程类中定义线程体使用标识
private boolean flag = true;
2)线程体中使用该标识

@Override  

public void run() {
	//线程体使用该标志
	while(flag) {
		System.out.println("study thread");
	}
	
}

3)提供对外的方法来改变此标识

public void stop(){
	this.flag = false;
}  

4)外部方法根据条件调用此方法
s.stop();

三、阻塞

1.join:合并线程
2.yield:暂停自己的线程(静态的方法)
3.sleep:休眠,暂停当前线程,此时不会释放锁
1)与时间相关

package com.bjsxt.thread.status;  


import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 倒计时
 * 倒数1个数,一秒打印一个
 * 倒计时
 * @author Administrator
 *
 */
public class SleepDemo01 {
	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("mm:ss").format(endtime));
			//等待一秒
			Thread.sleep(1000);
			//10s内继续,否则跳出
			endtime = new Date(endtime.getTime()-1000);
			if (end-10000>endtime.getTime()) {
				
				break;
			}
		}
		
	}
	public static void test01() throws InterruptedException{
		int num = 10;
		while(true) {
			System.out.println(num--);
			//暂停休眠睡眠
			Thread.sleep(1000);
			if (num<=0) {
				break;
			}
		}
	}
}  

2)模拟网络延时

package com.bjsxt.thread.status;

/**
 * sleep模拟网络延时
 * 可能会导致程序不准确,《线程不安全》
 * @author Administrator
 *
 */
public class SleepDemo02 {
	/**
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		Web12306 web = new Web12306();
		
		//代理
		Thread t1 = new Thread(web,"路人甲");
		Thread t2 = new Thread(web,"黄牛已");
		Thread t3 = new Thread(web,"工程甲");
		
		//启动线程
		t1.start();
		t2.start();
		t3.start();
	}
}
class Web12306 implements Runnable{
	private int num = 50;
	@Override
	public void run() {
		while(true) {
			if (num<=0) {
				break;
			}
			try {
				Thread.sleep(100);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			//同一份资源,引起的并发问题
			System.out.println(Thread.currentThread().getName()+" 抢到了 "+num--);
		}
		
	}

}

https://blog.csdn.net/it_manman/article/details/79402064?utm_source=blogxgwz0

posted on 2019-02-02 21:30  昉之  阅读(112)  评论(0)    收藏  举报