Java之线程总结一
创始人
2024-06-01 20:12:20
0

Java之线程总结一

线程实现方式

官方文档说的是实现线程的方式有两种;本质上只有一种,就是构造Thread类,而实现线程执行单元的方式有两种:

  1. 继承Thread类,重写run方法;
  2. 实现Runnable接口的run方法,把Runnable接口的实现类传递给Thread;

思考题,同时使用上面说的两种方式执行线程的结果是什么样的?也就是以下代码的执行结果是?

public class BothRunnableThread {public static void main(String[] args) {new Thread(new Runnable() {@Overridepublic void run() {System.out.println("来自Runnable");}}){//已经被重写,所以不会执行target.run()@Overridepublic void run() {System.out.println("来自Thread");}}.start();}
}

下图所示的是Thread类中的run()方法;这个target是一个Runnable类型的对象,如果我们不重写这个方法,那么默认执行的是我们传进去的Runnable接口对象的run()方法,但是我们重写了,所以这个代码不会被执行。
在这里插入图片描述

Runnable和Thread的比较

由于Java是单继承,所以使用Runnable在扩展性方面更好一些。
看到一些文章说Thread不能使用资源共享,其实这是错的,Thread可以实现资源共享,只是不太适合,在内部还是会向下转为Runnable去实现资源共享。以下是使用Thread实现资源共享的代码。


/**使用Thread类实现资源共享* @author dell* @date 2021/5/24 10:13*/
public class ThreadTest {public static void main(String[] args) {MyThread mt = new MyThread();new Thread(mt,"mt1").start();new Thread(mt, "mt2").start();}
}class MyThread extends Thread {private int total = 10;@Overridepublic void run() {for (int i = 0; i < 10; i++) {synchronized (this) {if (total > 0) {try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}total--;System.out.println(Thread.currentThread().getName() + " 卖出一张票 " + " 剩余票数:" + total);}}}}
}

start()方法和run()方法

当调用线程的start()方法后,会执行以下操作:

  1. 启动新线程,检查线程状态;
  2. 加入线程组
  3. 调用start()
    源码:
    在这里插入图片描述

如何停止线程

正确中断线程的方法是使用interrupt方法通知线程中断,注意这里interruot只是通知线程要中断,具体何时中断还是由线程自己决定的。

线程一般会在以下几种情况停止:

  1. 线程正常结束
  2. 线程出现异常
  3. 线程被阻塞

参考

  1. 视频
  2. Runnable和Thread比较

相关内容

热门资讯

汽车系统识别到安卓,智能驾驶新... 你知道吗?最近汽车界可是掀起了一股新潮流呢!那就是汽车系统识别到安卓,这可不是简单的兼容,而是深度融...
工程业务系统安卓版,助力项目管... 你知道吗?最近我在手机上发现了一个超级实用的工程业务系统安卓版,简直让我爱不释手!这款应用不仅功能强...
安卓手机不能升级系统,探寻无法... 最近是不是有很多小伙伴发现自己的安卓手机不能升级系统了?这可真是让人头疼啊!今天,就让我来给你详细解...
安卓系统大型枪战游戏,打造你的... 你有没有想过,在手机上也能体验一场惊心动魄的枪战呢?没错,就是那种让你心跳加速、肾上腺素飙升的大型枪...
安卓系统桌面返回按键,桌面返回... 你有没有发现,每次拿起手机,那个小小的安卓系统桌面返回按键就像一个忠诚的小助手,默默陪伴着我们穿梭在...
鸿蒙系统是换壳安卓,揭秘“换壳... 你知道吗?最近科技圈里有个大瓜,那就是鸿蒙系统竟然是换壳安卓!是不是觉得有点不可思议?别急,让我带你...
华为手机安卓系统流畅,引领科技... 你有没有发现,最近用华为手机的小伙伴们都在悄悄地炫耀他们的手机运行得超级流畅呢?这可不是随便说说哦,...
安卓系统短信无通知,无通知新体... 你是不是也遇到了这个问题?手机里的安卓系统短信竟然没有通知,这可真是让人头疼啊!别急,今天就来给你详...
安卓系统彩蛋怎么打开,开启隐藏... 你有没有发现,安卓系统里隐藏着许多有趣的彩蛋呢?这些彩蛋就像是一扇扇神秘的大门,等待着我们去探索。今...
安卓系统关闭压缩内存,安卓系统... 你知道吗?最近在安卓系统里,有一个小秘密引起了大家的热议。那就是关闭压缩内存的功能。听起来有点复杂,...
安卓系统上位机编写,基于安卓系... 你有没有想过,手机里的安卓系统其实是个大宝藏呢?它不仅能让你的生活变得丰富多彩,还能让你成为编程小达...
华为平板安卓7.1系统,探索性... 你有没有发现,最近华为平板的新款机型简直让人眼前一亮?没错,我要跟你聊聊的就是这款搭载了安卓7.1系...
鸿蒙系统安卓怎么升级,轻松实现... 你有没有发现,最近你的华为手机好像有点不一样了?没错,那就是鸿蒙系统升级的魅力!今天,就让我来带你一...
安卓引导系统的软件,架构、功能... 你有没有发现,每次打开安卓手机,那熟悉的引导系统就像一位热情的导游,带你一步步走进这个五彩斑斓的数字...
谷歌做的安卓系统,安卓系统的创... 亲爱的读者,你是否曾好奇过,那个几乎无处不在的安卓系统,究竟是由谁打造的呢?没错,就是那个改变世界的...
安卓系统总提示更新系统,体验流... 手机又闹腾了!安卓系统总提示更新系统,你是不是也和我一样,每次看到这个提示就有点头疼呢?别急,今天就...
aos是安卓系统么?,安卓系统... 你有没有想过,手机里的那个神秘的aos系统,它是不是安卓家族的一员呢?今天,就让我带你一探究竟,揭开...
诺基亚8刷安卓系统,解锁无限可... 你手中的诺基亚8是不是已经有点儿落伍了呢?别急,今天就来给你支个招,让你的老伙计焕发新生,变身安卓小...
安卓系统能不能,可以。 你有没有想过,安卓系统到底能不能?这个问题,就像是在问一个老朋友,他是不是真的懂你。安卓系统,这个陪...
安卓系统恢复误删视频,轻松找回... 手机里的视频突然不见了,是不是你也遇到了这样的尴尬情况?别急,今天就来教你如何用安卓系统恢复误删的视...