本帖最后由 ぺsimon☆ 于 2013-4-25 01:26 编辑
- class StopThread implements Runnable
- {
- boolean flag=true;
- public synchronized void run() //定义一个同步函数
- {
- if(flag)
- while(true) //如果flag等于true执行循环体
- {
- //try{this.wait();}catch(Exception e){} //处理异常
-
-
- for(int x=0;x<60;x++)
- {
- System.out.println(Thread.currentThread().getName()+"---run run"+x);
-
- }
- }
- else
- while(true)
- show();
- }
-
- public synchronized void show()
- {
- for(int x=0;x<60;x++)
- System.out.println(Thread.currentThread().getName()+"---show run"+x);
- }
- public void ChangeFlag()
- {
- flag=false; //返回 flag=false
- }
- }
- class StopThreadDemo
- {
- public static void main(String[] args)
- {
- StopThread st=new StopThread(); //创建对象
- Thread t1=new Thread(st); //创建一个线程t1
- t1.start(); //开启线程t1
- try{Thread.sleep(20);}catch(Exception e){}
- st.flag=false;
- Thread t2=new Thread(st); //创建一个线程t2
-
- t2.start(); //开启线程t2
- /*
- for(int x=0;x<60;x++)
- {
- if(x==20)
- {
- st.ChangeFlag(); //调用ChangeFlag()方法
- }
-
- // t1.interrupt();//调用interrupt()方法,结束线程的冻结状态
- System.out.println("main-----"+x);
-
- }
- */
- }
- }
复制代码 问题:
为什么程序运行后只有一个线程在运行呢?
|