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

本文详细介绍了在Java中如何通过继承Thread类和实现Runnable接口来创建线程,对比了两种方式的使用场景。同时,展示了如何利用同步机制实现线程间的数据共享,以车站卖票为例,演示了synchronized关键字在控制并发访问共享资源时的作用。此外,还提到了使用内部类简化接口方式创建线程的方法。
摘要由CSDN通过智能技术生成

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();

}

控制台:

81aec1524731a2aadff352ebfed8dbea.png

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();

}

控制台:

d38d6fa69e55771e56ef3d8798c41804.png

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();

}

}

控制台打印:

d51f7fb3a66a69331ff53d8957a579b0.png

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

@Test

public void test3() {

new Thread(new MyThread1() {

public void run() {

System.out.println("你好");

}

}).start();

}

控制台打印:

9faf9ec8fb97a4ecb344a46fb5284b68.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值