首页 > 试题广场 >

下列有关Thread的描述,哪个是正确的?

[单选题]
下列有关Thread的描述,哪个是正确的?
  • 启动一个线程的方法是:thread. run()
  • 结束一个线程的通常做法是:thread. stop()
  • 将一个线程标记成daemon线程,意味着当主线程结束,并且没有其它正在运行的非daemon线程时,该daemon线程也会自动结束。
  • 让一个线程等待另一个线程的通知的方法是:thread. sleep()
推荐
答案:C
启动线程方法start();线程stop方法已经被弃用;守护线程在非守护线程结束后,会自动结束;等待其他线程通知方法是wait()
编辑于 2015-02-05 16:32:16 回复(3)
答案:C
1.启动一个线程的方法是 start()
2.结束线程用的是interrupt()方法,而stop()是强制结束线程,并不推荐使用,同时stop()方法已被弃用
3.daemon线程是守护线程,当主线程结束时,守护线程会自动结束
4.一个线程等待另外一个线程的方法是wait()方法
发表于 2015-11-04 16:33:53 回复(0)
C:
A:thread.start()
B:不建议,结束线程设置一个flag变量或者结合interrupt()方法
C:设置为后台线程
D:thread.wait()
使用一个flag变量的示例:
package ThreadStop; class ThreadStopTest { public static void main(String[] args)
    {
        Thread1 t = new Thread1();
        t.start(); int index = 0; while(true)
        { if(index++ == 500)
            {
                t.stopStop(); break;
            }
            System.out.println(Thread.currentThread().getName());
        }
        System.out.println("main exit");
    }
} class Thread1 extends Thread { private boolean isStop = false; public synchronized void run()
    { while(!isStop)
        { try {
                wait(); //进入到对象的等待队列需要有notify方法去唤醒 } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName());
        }
    } public void stopStop()
    {
        isStop = true;
    }
}
使用interrupt()方法
package ThreadStop; class ThreadStopTest { public static void main(String[] args)
    {
        Thread1 t = new Thread1();
        t.start(); int index = 0; while(true)
        { if(index++ == 500)
            {
                t.stopStop(); //终端t的线程,此时就会抛出异常 t.interrupt(); break;
            }
            System.out.println(Thread.currentThread().getName());
        }
        System.out.println("main exit");
    }
} class Thread1 extends Thread { private boolean isStop = false; public synchronized void run()
    { while(!isStop)
        { try {
                wait(); //进入到对象的等待队列需要有notify方法去唤醒 } catch (InterruptedException e) {
                e.printStackTrace(); if(isStop) return;
            }
            System.out.println(Thread.currentThread().getName());
        }
    } public void stopStop()
    {
        isStop = true;
    }
}

发表于 2015-04-16 17:57:38 回复(3)
  • run()方法用来执行线程体中具体的内容
  • start()方法用来启动线程对象,使其进入就绪状态
  • sleep()方法用来使线程进入睡眠状态
  • suspend()方法用来使线程挂起,要通过resume()方法使其重新启动
发表于 2016-08-27 20:09:34 回复(0)
守护线程与用户线程的区别:当没有用户线程,仅仅剩下守护线程时,JVM会退出
发表于 2016-05-07 19:28:36 回复(0)
终止线程的三种方法 

    有三种方法可以使终止线程。 

    1.  使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。 

    2.  使用stop方法强行终止线程(这个方法不推荐使用,因为stop和suspend、resume一样,也可能发生不可预料的结果)。 

    3.  使用interrupt方法中断线程。 
发表于 2017-03-19 20:42:23 回复(0)
Java线程
start(),启动线程。
join(),等待线程运行完毕。
sleep(),让线程休眠一段时间。
setPriority(),设置线程优先级。

B中现在已经没有stop方法
D中应为thread.sleep()方法
发表于 2016-05-19 09:14:32 回复(0)
启动时start 结束时interrupt 等待时wait
发表于 2018-06-25 09:18:32 回复(0)
C.
启动一个线程是thread.start()方法
结束线程用的是thread.interrupt()方法,而stop()是强制结束线程,并不推荐使用
daemon线程是守护线程,当主线程结束时,守护线程会自动结束
一个线程等待另外一个线程的方法是thread.wait()方法
发表于 2015-08-14 16:59:26 回复(0)
结束线程interrupt(),守护线程会在非守护线程结束后自动结束
发表于 2019-09-26 09:43:57 回复(0)
线程一窍不通,该补补了。
发表于 2019-09-02 14:57:02 回复(0)
结束线程用interrupt
发表于 2019-08-26 11:24:21 回复(0)
启动一个用start()
interrupt()中断线程
wait()让一个线程等待另一个线程通知
发表于 2019-07-25 20:53:10 回复(0)
启动线程的方法是 start();
run() 是实现接口 Runnable 的对象创建一个线程时,启动该线程将导致在独立执行的线程中调用对象的 run() 方法;

结束线程的方法:
  •  使用stop方法终止线程 
            使用stop方法可以强行终止正在运行或挂起的线程;但使用stop方法是很危险的,就象突然关闭计算机电源,而不是按正常程序关机一样,可能会产生不可预料的结果,因此,并不推荐使用stop方法来终止线程。 
  • 使用interrupt方法终止线程 
             在第一种情况下使用interrupt方法,sleep方法将抛出一个InterruptedException例外,而在第二种情况下线程将直接退出。下面的代码演示了在第一种情况下使用interrupt方法。 

主线程退出之后,deamon 线程也就被终止了,同时程序也就退出了;

让一个线程等待另一个线程的通知的方法
    调用wait()、notify()、notifyAll()方法;
发表于 2019-05-06 12:47:10 回复(0)

启动线程为Thread.Start()

发表于 2019-03-02 19:00:26 回复(0)
***题目
发表于 2018-12-13 01:59:53 回复(0)
1.启动一个线程的方法是 start() 2.结束线程用的是interrupt()方法,而stop()是强制结束线程,并不推荐使用,同时stop()方法已被弃用 3.daemon线程是守护线程,当主线程结束时,守护线程会自动结束 4.一个线程等待另外一个线程的方法是wait()方法
发表于 2018-11-15 08:06:31 回复(0)
daemon线程为守护线程~
发表于 2018-11-10 19:18:00 回复(0)
启动线程方法start();
线程stop方法已经被弃用;
守护线程在非守护线程结束后,会自动结束;
等待其他线程通知方法是wait()
发表于 2018-11-08 20:59:21 回复(0)
start()才是启动线程的方法。daemon线程是守护线程,守护线程在非守护线程结束后会自动结束;等待其他线程通知的方法是wait()
发表于 2018-10-13 09:59:43 回复(0)
A 启动线程Thread.start(),线程进入就绪状态 等待cpu分配时间片
B 不建议使用stop()结束线程,一般是run()方法执行完毕后,主线程执行完,守护线程结束 才能成为线程结束
C 相当于设置了一个后台线程
D thread.wait()是让一个线程等待 sleep()是休眠

发表于 2018-09-09 16:33:23 回复(0)