JAVA多线程:什么时候使用哪种实现形式
JAVA多线程:什么时候使用哪种实现方式众所周知,JAVA里实现多线程有两种方式。一是继承Thread,覆盖run()方法
JAVA多线程:什么时候使用哪种实现方式
众所周知,JAVA里实现多线程有两种方式。
一是继承Thread,覆盖run()方法:
/* What will be run. */ private Runnable target; public void run() { if (target != null) { target.run(); } }
这是Thread类里面的run()方法,如果target(即Runnable对象)非空的话,它会直接调用Runnable的run()方法。
而Thread()类的run()方法是实现Runnable接口的:
publicclass Thread implements Runnable {
所以无论是哪种实现方式的run()其实都是一样的,但是Runnable方式有很明显的优势,就是它可以继承别的类而非局限于Thread类,Runnable方式说白了就是弥补这个缺陷而设计出来的。所以具体使用哪种方法就根据你实际情况了。
最后介绍个学习网站:http://gz.itcast.cn/ 1 楼 spiniper 2013-11-20 怎么方便怎么用,不过一般来说不要直接使用new Thread的方式来新建线程,这样太粗暴,而且不便于管理和封装。
一般现在都习惯使用Executors 执行器来管理线程。
一般每次new Thread会大量消耗系统资源,二Executors可以根据不同需要来构建线程池,将一定线程缓存,在需要的时候用其来执行,这样就能减少系统资源的消耗,并且Executors提供大量接口和辅助对象完成对线程的调度和监控。可以研究一下。