java主线程唤醒子线程的疑问
来源:互联网 发布:安卓视频播放器网络 编辑:程序博客网 时间:2024/05/21 03:27
public class Example{
public static void main(String args[]){
A target=new A(); //线程thread的目标对象
Thread thread=new Thread(target);
thread.setName("张三");
thread.start();
while(target.getStop()==false){}
System.out.println("我是主线程,负责恢复"+thread.getName()+"线程");
target.restart(); //恢复thread线程
}
}
class A implements Runnable{
int number=0;
boolean stop=false;
boolean getStop(){
return stop;
}
public void run(){
while(true){
number++;
System.out.println(Thread.currentThread().getName()+"的number="+number);
if(number==3){
try{ System.out.println(Thread.currentThread().getName()+"被挂起");
stop=true;
hangUP();//挂起线程
System.out.println(Thread.currentThread().getName()+"恢复执行");
}
catch(Exception e){}
}
try{ Thread.sleep(1000);
}
catch(Exception e){}
}
}
public synchronized void hangUP() throws InterruptedException{
wait();
}
public synchronized void restart(){
notifyAll();
}
}
求教,main方法中的空循环是做什么用的?初学线程,不是很理解。
while(target.getStop()==false){}
等待target线程结束,target线程运行在主线程main里面,如果没有这个空循环,主线程顺序执行,target还没有执行完得时候主线程已经执行完退出了,会导致target也退出。
public static void main(String args[]){
A target=new A(); //线程thread的目标对象
Thread thread=new Thread(target);
thread.setName("张三");
thread.start();
while(target.getStop()==false){}
System.out.println("我是主线程,负责恢复"+thread.getName()+"线程");
target.restart(); //恢复thread线程
}
}
class A implements Runnable{
int number=0;
boolean stop=false;
boolean getStop(){
return stop;
}
public void run(){
while(true){
number++;
System.out.println(Thread.currentThread().getName()+"的number="+number);
if(number==3){
try{ System.out.println(Thread.currentThread().getName()+"被挂起");
stop=true;
hangUP();//挂起线程
System.out.println(Thread.currentThread().getName()+"恢复执行");
}
catch(Exception e){}
}
try{ Thread.sleep(1000);
}
catch(Exception e){}
}
}
public synchronized void hangUP() throws InterruptedException{
wait();
}
public synchronized void restart(){
notifyAll();
}
}
求教,main方法中的空循环是做什么用的?初学线程,不是很理解。
while(target.getStop()==false){}
等待target线程结束,target线程运行在主线程main里面,如果没有这个空循环,主线程顺序执行,target还没有执行完得时候主线程已经执行完退出了,会导致target也退出。
- java主线程唤醒子线程的疑问
- Java主线程与子线程的通信
- Java 通过主线程实现子线程的超时控制
- java主线程与子线程的存亡
- java多线程--子线程的事务影响主线程吗
- Java 主线程和子线程的转换
- java 主线程 等待 子线程
- Java实现主线程等待子线程
- java 主线程等待子线程结束
- Java主线程等待子线程结束
- Java实现主线程等待子线程
- Java实现主线程等待子线程
- 子线程,主线程
- 主线程与子线程的问题
- 主线程与子线程的关系
- 主线程和子线程的双向通信
- 主线程和子线程的区别
- Android的主线程与子线程
- free template
- arcgis 10系列下载地址收集
- 推荐两个非常好用的测试工具jmeter和badboy
- 常用晶体管参数表
- ubuntu 下设置mysql字符集为utf-8
- java主线程唤醒子线程的疑问
- Windows Phone网络HttpWebRequest用法
- 联想利泰的一道做出来就给月薪7K的面试题--交通灯管理系统
- 02_JDBC编程
- sqlite数据库文件拷贝出错
- js生成web安全色
- Windows Phone 7 中将Gb2312编码转换成UTF-8
- The Hadoop Distributed File System
- 百度Mp3的API在windows phone 7中的使用