JAVA中实现多线程的方式有4种:
1.类继承Thread类,重写run方法;
2.类实现Runnable,重写run方法;
3.实现Callable接口通过FutureTask包装器来创建Thread线程;
4.使用ExecutorService、Callable、Future实现有返回结果的线程;
今天讲第一种实现方法:
1.创建一个ThreadTest类,类中包含一个ThreadImp类。ThreadImp类继承Thread类。
public class ThreadTest {
public static void main(String[] args){
}
}
class ThreadImp extends Thread{
}
2.ThreadImp类重写run方法
class ThreadImp extends Thread{
static Integer i=0;//定义一个全局的静态变量i;
public void run(){
while(i < 10) {
i++;//当线程同时抢占资源后,会导致i数据不安全
//输出当前线程和线程所占有的i
System.out.println(Thread.currentThread() + ":这个线程的i是" + i);
}
}
}
3.main方法种创建2个线程对象
public static void main(String[] args){
ThreadImp t1= new ThreadImp();
ThreadImp t2 =new ThreadImp();
t1.start();
t2.start();
}
4.启动main方法
第一次:
第二次:
第三次:
虽然测试数据量较小,但是我们也发现存在线程共同抢占i资源的现象