JAVA多线程实现方法

多线程一般实现由三种方法

(1)继承Thread类,重写run()方法

Thread本质上是实现Runnable接口的一个实例,它代表一个线程的实例,并且启动线程的唯一方法就是通过Thread类的start()方法。start()方法将启动一个新线程,并执行run()方法

(Thread类中提供的run方法是个空方法)

 源代码:

JAVA多线程(二)

JAVA多线程(二)

 

该run是个空方法,所以可以继承下来,进行重写

JAVA多线程(二)

自定义类然后继承Thread,并重写run()方法,就可以启动新线程并执行自己定义的run方法。

但注意调用start()方法后并不是立即执行多线程代码,而是使该线程变为可运行状态,至于什么时候执行,那是操作系统来决定的。

 

(2)实现Runnable接口,并实现该接口的run()方法

看源码

JAVA多线程(二)

 

发现Thread这个类中,实现了Runnable 这个接口中的方法。

JAVA多线程(二)

 

总结其实两种方法都可以实现多线程,但始终都离不开Thread的API去控制线程。

(3)实现Callable接口,重写call()方法

 JAVA多线程(二)

 

Callable接口实现属于Executor框架中的功能类,callable接口与Runnable接口的功能类似,但提供了比Runnable更加强大的功能

(1)任务结束提供返回值

(2)call可以抛出异常

(3)运行Callable可以获取Future对象,Future对象表示异步计算的结果,他提供了计算是否完成的方法。可以使用Future来监视目标线程call()方法的情况,当调用Future的get方法获取结果时,但线程会阻塞,知道call()方法结束后返回结果。                                                                                                                                                                                  

 

相关文章:

  • 2021-08-22
  • 2021-11-08
  • 2022-02-09
  • 2021-06-06
  • 2021-12-13
  • 2021-08-10
  • 2022-12-23
  • 2021-11-12
猜你喜欢
  • 2022-01-03
  • 2021-08-20
  • 2021-11-13
  • 2022-12-23
  • 2021-10-25
  • 2021-08-28
相关资源
相似解决方案