开启线程的三种方式
1)继承Thread类,重写run()方法,在run()方法体中编写要完成的任务 new Thread().start();
2)实现Runnable接口,实现run()方法 new Thread(new MyRunnable()).start();
3)实现Callable接口MyCallable类,实现call()方法,使用FutureTask类来包装Callable对象,使用FutureTask对象作为Thread对象的target创建并启动线程;调用FutureTask对象的get()方法来获得子线程执行结束后的返回值。
run()和start()方法的区别
1)run()方法只是线程的主体方法,和普通方法一样,不会创建新的线程。只有调用start()方法,才会启动一个新的线程,新线程才会调用run()方法,线程才会开始执行。
如何关闭线程
1 ) 使用标志位
2)使用stop()方法,但该方法就像关掉电脑电源一样,可能会发生预料不到的问题
3)使用中断interrupt()但调用interrupt()方法只是传递中断请求消息,并不代表要立马停止目标线程。
网友评论