JAVA中实现多线程的方式有4种:
1.类继承Thread类,重写run方法;
2.类实现Runnable,重写run方法;
3.实现Callable接口通过FutureTask包装器来创建Thread线程;
4.使用ExecutorService、Callable、Future实现有返回结果的线程;
今天讲第二种实现方法:
代码如下:
import java.util.Date;
public class ThreadTest {
public static void main(String[] args) {
//实现Runnale的类,要启动多线程,还是需要声明创建Thread()类,并把实现类ThreadImp作为构造函数的参数
Thread t1 = new Thread(new ThreadImp());
Thread t2 = new Thread(new ThreadImp());
t1.start();
t2.start();
}
}
//创建一个Threadimp实现Runnable类,重现main方法。
class ThreadImp implements Runnable {
static Integer i = 0;//定义一个全局的静态变量
public void run() {
while(i < 10) {
//多个线程共同抢占i数据,会导致i输出的时候不是线性
i++;
System.out.println(Thread.currentThread() +"时间是"+ new Date()+":这个线程的i是" + i);
}
}
}
启动main方法
第一次:
测试量并不是很大,我们多测几次:
第二次:
第三次: