多线程

多线程

进程:是一个正在执行中的程序,每一个进程执行都有一个执行程序。该顺序是一个执行路径,或者叫一个控制单元
线程:就是进程中的一个独立的控制单元,线程在控制进程的执行,一个进程至少一个线程
Java VM 启动的时候会有一个进程java.exe,该进程至少有一个线程负责Java程序的执行。而且这个线程运行的代码存在于main方法中,该线程称之为主线程
扩展:其实更细节说明jvm启动不止一个线程,还有负责垃圾回收机制的线程

创建线程:
第一种方式:继承Thread类
步骤:
1、定义类继承Thread
2、复写Thread类中的run方法
3、调用线程的start方法,该方法有两个作用:启动线程,调用run方法

class ThreadTest extends Thread {
	public void run() {
		for (int x = 0; x < 50; x++) {
			System.out.println("test......" + (x + 1));
		}
	}
}

public class ThreadDemo {
	public static void main(String[] args) {
		ThreadTest threadTest = new ThreadTest();
		threadTest.start();
		for (int i = 0; i < 50; i++) {
			System.out.println("Demo>>>>" + (i + 1));
		}
	}
}

第二种方式:实现Runnable接口
步骤:
1、定义类实现Runnable接口
2、覆盖Runnable接口中的run方法
3、通过Thread类建立线程对象
4、将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数
5、调用Thread类中的start方法开启线程并调用Runnable接口子类的run方法

class ThreadTest1 implements Runnable {
	public void run() {
		for (int i = 0; i < 50; i++) {
			System.out.println("test...." + (i + 1));
		}
	}
}

public class ThreadDemo1 {
	public static void main(String[] args) {
		ThreadTest1 threadTest = new ThreadTest1();
		Thread thread = new Thread(threadTest);
		thread.start();
		for (int i = 0; i < 50; i++) {
			System.out.println("Demo>>>>>>" + (i + 1));
		}
	}
}

实现方式和继承方式的区别
实现方式避免了单继承的局限性,在定义线程时,建议使用实现方式
继承Thread:线程代码存放Thread子类的run方法中
实现Runnable:线程代码存放在接口的子类的run方法中

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章