java中创建线程使用 Thread类和Runable接口的区别

java中创建线程使用 Thread类和Runable接口:

1.不管是类还是接口都要重写run方法

2.即使是使用了Runnable接口的类,最后也是需要借助Thread类来进行start();

3.使用Runnable接口可以实现数据的共享,比如车站卖票

a.首先是使用继承Thread类来创建一个线程类:

public static class MyThread2 extends Thread {
		public void run() {
			System.out.println("是MyThread2在run");
		}
	}

	@Test
	public void test2() {
		MyThread2 myThread2 = new MyThread2();
		myThread2.start();
	}

控制台:

java中创建线程使用 Thread类和Runable接口的区别_第1张图片

b.下边是使用实现接口Runnable来创建一个线程类

public class MyThread1 implements Runnable {
		@Override
		public void run() {
			System.out.println("这个是MyThread1在run");
		}
	}

	@Test
	public void test3() {
		MyThread1 MyThread1 = new MyThread1();
		Thread th = new Thread(MyThread1);
		th.start();

	}

控制台:

java中创建线程使用 Thread类和Runable接口的区别_第2张图片

c.测试我们数据共享的功能

public class MyThread1 implements Runnable {
		int n=10;
		@Override
		public synchronized void run() {
			for( int i=10;i>0;i++){
				if(n>0){
					System.out.println(n--);
				}
			}
			
		}
	}

	@Test
	public void test3() {
		MyThread1 MyThread1 = new MyThread1();
		Thread th = new Thread(MyThread1);
		Thread th5 = new Thread(MyThread1);
		th.start();
		th5.start();

	}

}

控制台打印:

java中创建线程使用 Thread类和Runable接口的区别_第3张图片

d.使用内部类方式简化我们使用接口方式来创建线程类

@Test
	public void test3() {
		
		new Thread(new MyThread1() {
			public void run() {
				System.out.println("你好");
			}
		}).start();
		

	}

控制台打印:

java中创建线程使用 Thread类和Runable接口的区别_第4张图片

你可能感兴趣的:(#,javase)