欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

简述Java创建线程的两种方式

程序员文章站 2022-04-19 13:25:33
Java创建线程的两种方式继承Thread类的方法创建线程实现Runnable接口的方法创建线程一般java创建线程的时候有两种方法:①继承Thread类②实现Runnable接口继承Thread类的方法创建线程创建一个类MyThread类继承Thread类,重写run()方法,run()方法体内写要执行的代码。/** * 继承Thread类创建线程 * 重写run()方法 * @author dudu * */public class MyThread extends Threa...


一般java创建线程的时候有两种方法:
①继承Thread类
②实现Runnable接口

继承Thread类的方法创建线程

创建一个类MyThread类继承Thread类,重写run()方法,
run()方法体内写要执行的代码。

/**
 * 继承Thread类创建线程
 * 重写run()方法
 * @author dudu
 *
 */
public class MyThread extends Thread{
	@Override	
	public void run() {
		System.out.println("我是重写的run方法----继承Mythread类");				
	}	
}

新建一个测试类,main方法里,实例化MyThread ,并用对象调用start()方法启动线程。

/**
 * 测试 继承Thread类创建线程
 * @author dudu
 *
 */
public class TestMyThread {
	public static void main(String[] args) {
		MyThread m = new MyThread();//实例化MyThread
		m.start();//调用start()方法启动线程
	}
}

执行结果

我是重写的run方法----继承Mythread类

多线程的话就多实例化一个对象

public class MyThread extends Thread{
	@Override	
	public void run() {
		//System.out.println("我是重写的run方法----继承Mythread类");		
		for(int i=1;i<=5;i++) {
			//当前线程的线程名
			System.out.println(Thread.currentThread().getName()+" 第"+i+"次执行");
		}
	}
		
}

测试

/**
 * 测试 继承Thread类创建线程
 * @author dudu
 *
 */
public class TestMyThread {
	public static void main(String[] args) {
		MyThread m1 = new MyThread();//实例化MyThread
		m1.start();//调用start()方法启动线程
		MyThread m2 = new MyThread();
		m2.start();
	}
}

执行结果

线程21次执行
线程11次执行
线程12次执行
线程13次执行
线程22次执行
线程23次执行
线程14次执行
线程24次执行
线程25次执行
线程15次执行

实现Runnable接口的方法创建线程

创建一个MyRunnable类,实现Runnable接口,并且也要有run()方法

/**
 * 实现Runnable接口创建线程
 * 重写run()方法
 * @author dudu
 *
 */
public class MyRunnable implements Runnable{
	@Override
	public void run() {
		System.out.println("我是run方法----实现Runnable接口");
	}
}

新建一个测试类,main方法里,实例化,并用对象调用start()方法启动线程。

/**
 * 测试 实现Runnable接口创建线程
 * @author dudu
 *
 */
public class TestMyRunnable {
	public static void main(String[] args) {
		//Runnable接口new一个MyRunnable 实例化
		Runnable r = new MyRunnable();
		//实例化Thread 并把Runnable 对象放入参数,
		Thread t = new Thread(r);
		t.start();//调用start方法启动线程
	}
}

执行结果–线程交替执行

我是run方法----实现Runnable接口

多线程和上述同理

public class MyRunnable implements Runnable{
	@Override
	public void run() {
		for(int i=1;i<=5;i++) {
			System.out.println(Thread.currentThread().getName()+"第"+i+"次执行");
		}
	}
}
public class TestMyRunnable {
	public static void main(String[] args) {
		//Runnable接口new一个MyRunnable 实例化
		Runnable r = new MyRunnable();
		//实例化Thread 并把Runnable 对象放入参数,
		Thread t1 = new Thread(r,"线程1");//后面可以给线程起名,可以不写
		Thread t2 = new Thread(r,"线程2");
		t1.start();//调用start方法启动线程
		t2.start();
	}
}

执行结果-线程交替执行

线程21次执行
线程11次执行
线程22次执行
线程23次执行
线程12次执行
线程24次执行
线程13次执行
线程25次执行
线程14次执行
线程15次执行

以上就是线程简单创建的两种方式,不过推荐用实现Runnable接口的方法创建线程。

本文地址:https://blog.csdn.net/weixin_47654132/article/details/107126440