java多线程入门
创建并执行线程的方法有三种
1.将类声明为Thread的子类,该子类重写run方法。
1.自己定义一个类继承Thread
2.重写Run()方法。
public class MyThread extends Thread{
@Override
public void run() {
for(int i=0;i<100;i++) {
System.out.println(getName()+"HelloWorld");
}
}
}
3.创建子类对象,执行线程
MyThread T1=new MyThread();
MyThread T2=new MyThread();
T1.setName("线程1");
T2.setName("线程2");
T2.start();
T1.start();
2.声明实现Runnable()接口的类。该类实现Run()方法,分配该类的实例,在创建Thread时作为一个参数进行使用。
1.自己定义一个类继承Runnable接口;
2.重写Run()方法。
public class MyRun implements Runnable {
@Override
public void run() {
for(int i=0;i<100;i++) {
// 获取当前线程的对象;
Thread T1= Thread.currentThread();
System.out.println(T1.getName()+"Helloworld");
}
}
}
3.实例化Runnable对象
4.将Runnable对象作为参数传入new Thread()中新建线程
MyRun mr=new MyRun();
Thread t1=new Thread(mr);
Thread t2=new Thread(mr);
t1.setName(“线程1”);
t2.setName(“线程2”);
t2.start();
t1.start();
3.利用Callable接口和Future接口实现(可以获得多线程执行的结果)
1.创建Mycall类实现callable接口
2.重写call()方法
public class MyCallable implements Callable {
@Override
public Integer call ()throws Exception{
int sum=0;
for(int i=0; i<100;i++) {
sum=sum+i;
}
return sum;
}
}
3.创建callable的对象(表示多线程要执行的操作)
4.创建Future(要先创建Future的实现类FutureTask)的对象(管理多线程的运行结果)
5.创建Thread的对象(表示线程)
创建mycallable对象(表示多线程运行的结果)
MyCallable mc=new MyCallable();
// 创建FutureTask对象
FutureTask<Integer> ft=new FutureTask<Integer>(mc);
// 创建线程的对象
Thread t1=new Thread(ft);
t1.start();
int result= ft.get();
System.out.println(result);