这篇文章介绍基于java学习中多线程的实现方法
1 继承thread类
继承thread类的方法尽管被我列为一种多线程实现方式,但thread本质上也是实现了runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过thread类的start()实例方法。start()方法是一个native方法,它将启动一个新线程,并执行run()方法。这种方式实现多线程很简单,通过自己的类直接extend thread,并复写run()方法,就可以启动新线程并执行自己定义的run()方法。
public class mythread extends thread {
public void run() {
system.out.println("mythread.run()");
}
}
//启动线程
mythread mythread1 = new mythread();
mythread mythread2 = new mythread();
mythread1.start();
mythread2.start();
2 实现runnable接口
如果一个类继承另一个类,就无法继承thread类(java中不支持多继承),这样就要实现runnable接口,在实现类中重写run()方法,在main方法中实现多线程:实例化一个实现类对象,并初始化thread类的对象,把实现类传入到thread的对象里。事实上,当传入一个runnable target参数给thread后,thread的run()方法就会调用target.run()。
//实现runnable接口
public class mythread extends otherclass implements runnable {
public void run() {
system.out.println("mythread.run()");
}
}
//复写run()方法
public void run() {
if (target != null) {
target.run();
}
}
//实例化对象
mythread mythread = new mythread();
thread thread = new thread(mythread);
thread.start();
3 使用executorservice、callable、future实现有返回结果的多线程
该部分内容还未学到占时不作记录,以后补充
以上就是基于java学习中多线程的实现方法的详细内容。