标签:
一、线程的状态有5种:
新生状态 就绪状态 运行状态 阻塞状态 死亡状态


二、线程的停止(重点)
1,自然终止:线程体执行完毕
2,外部干涉:
1>,线程体类 定义 线程体使用的标识
2>,线程体中使用该标识
3>,提供对外的方法改变该标识
4>,外部根据条件调用该方法
代码实现:
package com.cust.status;
/**
* 描述:线程的终止:
* 1,自然终止:线程体执行完毕
* 2,外部干涉:
* 1>,线程体类 定义 线程体使用的标识
* 2>,线程体中使用该标识
* 3>,提供对外的方法改变该标识
* 4>,外部根据条件调用该方法
* @author cookie
*/
public class StopDemo implements Runnable{
private boolean flag = true;//定义标识
private int num=0;
@Override
public void run() {
while(flag){//使用标识
System.out.println("stop--->"+num++);
}
}
public void stop(){ //对外提供改变标识的方法
this.flag = false;
}
public static void main(String[] args) {
StopDemo s = new StopDemo();
new Thread(s).start();
for(int i = 0; i < 100; i++){
if(i==50){
s.stop();//外部调用
}
System.out.println("main----->"+i);
}
}
}
二、线程的阻塞
Thread.yield();//谁的内部调用谁暂停
与时间相关:倒计时
模拟网络延时,并发 --->Web12306
join代码实现(yield类似):
package com.cust.status;
/**
* 描述:线程阻塞
* join:合并线程 t.join();//先将t执行完毕
* yield:暂停自己的线程,谁调用谁暂停Thread.yield
*
* @author cookie
*/
public class JoinDemo extends Thread{
@Override
public void run() {
for (int i = 0; i < 1000; i++) {
System.out.println("join---->"+i);
}
}
public static void main(String[] args) throws InterruptedException {
JoinDemo demo = new JoinDemo();
Thread t = new Thread(demo);
t.start();
//cpu调度执行
for (int i = 0; i <100; i++) {
if(50==i){
t.join();//main方法阻塞
}
System.out.println("main---->"+i);
}
}
}
sleep倒计时:
package com.cust.status;
import java.sql.Date;
import java.text.SimpleDateFormat;
/**
*
* 描述:倒计时
* @author cookie
*/
public class SleepDemo01 {
public static void main(String[] args) throws InterruptedException {
//当前日期的10秒
Date endTime = new Date(System.currentTimeMillis()+1000*10);
long end = endTime.getTime();//毫秒数
while(true){
System.out.println(new SimpleDateFormat("mm:ss").format(endTime));//格式化并输出
endTime = new Date(endTime.getTime()-1000);//构建下一秒时间
Thread.sleep(1000);//睡眠1秒
if((end-10000)>endTime.getTime() ){//10秒以内继续,否则退出
break;
}
}
}
public static void test1() throws InterruptedException {
int num = 10;
while(true){
System.out.println(num--);
Thread.sleep(1000);
if(num <=0){
break;
}
}
}
}
sleep网络延时---->并发
标签:
原文地址:http://www.cnblogs.com/blogofcookie/p/5930148.html