import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Vector;
public class TextThreadYield { // 操作线程让步的类
private Vector vector = new Vector(); // 创建向量集合
// 创建日期格式
private DateFormat dateFormat = new SimpleDateFormat("HH-mm-ss:SSSS");
private boolean isFlag = false;
private class Yield extends Thread { //让步接收文件类
public Yield() {
this.setName("接收文件"); //设置线程名称
this.setDaemon(true); // 如果SendFile线程结束,则该线程自动结束
}
public void run() {
while (!isFlag) { // 标识为真进行循环
try {
Thread.sleep(100); // 休眠
}catch(InterruptedException e){ //捕获唤醒异常
System.out.println("唤醒异常:"+e.getMessage());
}
if (vector.size() == 0) { //判断向量集合大小
System.out.println(dateFormat.format(new Date())+ "\t向量集合中没有文件,执行yield操作");
Thread.yield(); //调用线程让步
} else { //移队文件获得对象
String ss = (String) vector.remove(0);
System.out.println(dateFormat.format(new Date())+"\t取到文件,名为" + ss);
}
}
}
}
private class SendFile extends Thread { //发送文件类
private String[] files = new String[] { "新闻文件", "国内旅游向导", "山水名画欣赏", "发家致富说明" };
public SendFile() {
this.setName("发送文件");
}
public void run() {
try {
for (int i=0;i < files.length;i++){ //循环使线程休眠
Thread.sleep(201); //线程休眠
vector.add(files[i]); //添加文件
}
Thread.sleep(100); //线程休眠
} catch (InterruptedException e) { //捕获唤醒异常
System.out.println("唤醒异常:"+e.getMessage());
}
}
}
public static void main(String []args){ //java程序主入口处
TextThreadYield text=new TextThreadYield();//实例化对象
text.new Yield().start(); //实例对象启动线程
text.new SendFile().start();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
java 线程让步(Yield)
共2个文件
java:1个
jpg:1个
4星 · 超过85%的资源 需积分: 50 22 下载量 193 浏览量
2010-06-21
15:47:44
上传
评论
收藏 59KB ZIP 举报
温馨提示
java 线程让步(Yield) java 线程让步(Yield) java 线程让步(Yield)
资源推荐
资源详情
资源评论
收起资源包目录
java 线程让步(Yield).zip (2个子文件)
TextThreadYield.java 2KB
Java.jpg 77KB
共 2 条
- 1
资源评论
- shuergang2014-07-30不错,很有代表性。
- NeverOrBest2013-10-08不错,为了分数也的给个好评。
liurui52368
- 粉丝: 0
- 资源: 42
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功