多线程是java语言区别于其它语言的一大特点。其它语言向C++的话如果要实现多线程的话,必须调用操作系统的多线程机制(我不确定自己记得对不对
了感兴趣的自己上网查查看)。
在java5以前实现多线程有两种方法(继承Thread类和实现Runnable接口)
它们分别为:
使用new Thread()和new Thread(Runnable)形式
第一种直接调用thread的run方法,所以,我们往往使用Thread子类,即new SubThread()。
第二种调用
Runnable的run方法。
第一种:
new Thread(){}.start();这表示调用Thread子类对象的run方法,new Thread(){}表示一个Thread的匿名子类的实例对象,子类加上run方法后的代码如下:
new Thread(){
public void run(){
}
}.start();
第二种:
new Thread(
new Runnable(){}
).start();
这表示调用Thread对象接受的Runnable对象的run方法,new Runnable(){}表示一个Runnable的匿名子类的实例对象,
runnable的子类加上run方法后的代码如下:
new Thread(new Runnable(){
public void run(){
}
}
).start();
从java5开始,还有如下一些线程池创建多线程的方式:
package com.yonyou.test; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /** * 测试类 * @author 小浩 * @创建日期 2015-3-2 */ public class Test{ public static void main(String[] args){ ExecutorService pool = Executors.newFixedThreadPool(3); for(int i=0;i<10;i++) { pool.execute(new Runnable(){public void run(){ System.out.println();}}); } Executors.newCachedThreadPool().execute(new Runnable(){public void run(){}}); Executors.newSingleThreadExecutor().execute(new Runnable(){public void run(){}}); } }