import java.util.*;public class TestThread2
{
public static void main(String[] args)
{
MyThread m = new MyThread();
m.start();
try
{
m.sleep(10000);
}
catch(InterruptedException e)
{
m.interrupt();
}
}
}class MyThread extends Thread
{
public void run()
{
while(true)
{
System.out.println(new Date());
try
{
sleep(1000);
}
catch(InterruptedException e)
{
return;
}
}
}
}我想让他10秒后停止,但是我的电脑一直运行,不停止,难道是因为双核的机器?

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【cismylife】截止到2008-07-24 10:03:34的历史汇总数据(不包括此帖):
    发帖的总数量:6                        发帖的总分数:160                      每贴平均分数:26                       
    回帖的总数量:7                        得分贴总数量:1                        回帖的得分率:14%                      
    结贴的总数量:6                        结贴的总分数:160                      
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    敬礼!
      

  2.   


    import java.util.*;public class TestThread2
    {
    public static void main(String[] args)
    {
    MyThread m = new MyThread();
    m.start();
    try
    {
    Thread.sleep(10000);//把上面这里改成这个也不行
    }
    catch(InterruptedException e)
    {
    m.interrupt();
    }
    }
    }class MyThread extends Thread
    {
    public void run()
    {
    while(true)
    {
    System.out.println(new Date());
    try
    {
    sleep(1000);
    }
    catch(InterruptedException e)
    {
    return;
    }
    }
    }
    }
      

  3.   

    你没有让他停止啊  
    while(true) 进去就出不来了
      

  4.   

    class MyThread extends Thread
    {
        public void run()
        {
            int i=0;
            while(true)
            {
                System.out.println(new Date());
                try
                {
                    sleep(1000);
                    i++;
                    if(i==9){
                       break;
                    }
                }
                catch(InterruptedException e)
                {
                        return;
                }
            }
        }
    }
      

  5.   

    MyThread m = new MyThread();
            m.start();
            try
            {
                Thread.sleep(10000);//把上面这里改成这个也不行
            }
            catch(InterruptedException e)
            {
                m.interrupt();
            }
    难道这不是暂停吗
      

  6.   

    sleep(1000)只是休息1s,你还是没有出while循环啊
      

  7.   

    public class Main {    public static void main(String[] args) {
            MyThread m = new MyThread();
            m.start();
            try
            {
                m.sleep(10000);
                m.interrupt(); //here!
            }
            catch(InterruptedException e)
            {
                //System.out.println("");
            }
        }}
      

  8.   

    interrupt(); 只是给线程设置了一个中断标志,它并不会真的中断你的线程 m 的运行。改成下面方法试试:import java.util.Date;public class TestThread2 { public static void main(String[] args) {
    MyThread m = new MyThread();
    m.start();
    try {
    Thread.sleep(10000L);  //把上面这里改成这个也不行
    //你加不加 Thread 调用的都是 Thread 的静态方法 sleep
    //而它的作用是使当前正在运行的 main 线程休眠 10 秒
    m.interrupt();  //10 秒后使 m 中断运行
    } catch (InterruptedException e) {
    //m.interrupt();
    }
    }}class MyThread extends Thread { public void run() {
    while (!isInterrupted()) {  //此处改一下
    System.out.println(new Date());
    try {
    sleep(1000L);
    } catch (InterruptedException e) {
    return;
    }
    }
    }}
      

  9.   


    public class Main {    public static void main(String[] args) {
            MyThread m = new MyThread();
            m.start();
            try
            {
                m.sleep(10000);
                m.interrupt(); 
            }
            catch(InterruptedException e)
            {
                //System.out.println("");
            }
        }}