Java多线程引例及实现多线程的方式

多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。

Java多线程是由JVM来实现,不必关心操作系统的调用问题。

假如我们要实现如下功能:

public class Test {
	public static void main(String[] args) {
		for(int i=0;i<100;i++){ //和尚念经100遍
			System.out.println(i+"南无阿弥陀佛!");
		}
		for(int i=0;i<100;i++){ //道士讲经100遍
			System.out.println(i+"道可道、非常道!");
		}
	}
}

  即和尚念经100遍和道士讲经100遍

传统方式我们只能等待一个人做完了,第二个人才能开始工作。而实际情况他们应该能够同时工作,且各干各的互不干扰。

于是这时我们就要使用多线程技术。

class HeShang extends Thread{ //继承Thread类
	public void run(){ //把任务写进run方法里面
		for(int i=0;i<100;i++){
			System.out.println(i+"南无阿弥陀佛!");
		}
	}
}
class DaoShi extends Thread{
	public void run(){
		for(int i=0;i<100;i++){
			System.out.println(i+"道可道、非常道!");
		}
	}
}
public class Demo {
	public static void main(String[] args) {
		HeShang heShang=new HeShang();
		DaoShi daoShi=new DaoShi();
		heShang.start();
		daoShi.start();
	}
}

  运行后如图:

刚才我们就实现了多线程

Java中多线程实现方式主要有两种(1)继承Thread类(2)实现Runnable接口

使用Runnable接口实现多线程

class HeShang implements Runnable{
	public void run(){
		for(int i=0;i<100;i++){
			System.out.println(i+"南无阿弥陀佛!");
		}
	}
}
class DaoShi implements Runnable{
	public void run(){
		for(int i=0;i<100;i++){
			System.out.println(i+"道可道、非常道!");
		}
	}
}
public class Demo {
	public static void main(String[] args) {
		HeShang heShang=new HeShang();
		DaoShi daoShi=new DaoShi();
		//要用Thread来启动线程,代理设计模式
		Thread t1=new Thread(heShang); //Thread构造方法可接收Runnable类型,向上转型,自动完成
		t1.start();
		new Thread(daoShi).start(); //匿名对象
	}
}

  因为Runnable接口没有run方法,所以实现Runnable接口的类(HeShang or DaoShi)没有start方法,但是Thread是有start方法的。

我们使用代理,首先Thread构造方法可接收Runnable类型

之后用Thread对象启动start方法。

也可以使用匿名对象一行代码完成。

运行后,也能够实现多线程,如图所示:

原文地址:https://www.cnblogs.com/mengxinrenyu/p/8095239.html