Java中Thread类基本方法的使用
创始人
2025-05-29 20:22:31
0

目录

1.线程的创建

2.线程的中断(终止)

3.线程的等待

4.线程的休眠

5.获取当前线程实例


1.线程的创建

     start()方法用于创建并执行线程.它与run()方法的区别是: run()方法是一个特殊方法,相当于线程的入口,其中是线程要实现的逻辑,它一般都是通过系统自动调用,而不是我们手动去调用.且它不会创建一个新的线程.而调用start()方法会先使用操作系统API去创建一个新的线程,然后该新的线程会去调用run()方法.

          ●示例代码

        Thread thread = new Thread(() -> {System.out.println("thread1");});//1.线程的创建thread.start();

注:如果需要查看线程是否创建成功,可以通过jdk的bin目录下的jconsole.exe查看(只能查看在运行中的线程).

2.线程的中断(终止)

     嘿嘿,在之前使用的stop()方法,但是现在已经弃用,根据jdk帮助文档可以知道:

    现在我们通过interrupt()来中断线程,其中断步骤分为两步:首先,设置中断标志位为true(默认为false),其次,如果线程正在阻塞中(正在执行sleep()方法),则会唤醒阻塞状态,就会以抛异常的方式中断线程,但是它不会直接中断线程,而是让我们自己选择是否中断线程.

这么讲可能有点抽象,大家可能一时之间不能理解,我们看一下示例代码:

          ●示例代码 

            抛异常我们没有中断线程:

        Thread thread = new Thread(() -> {//得到当前线程实例,用isInterrupted()方法去判断线程是否发生中断while (!Thread.currentThread().isInterrupted()) {System.out.println("thread1");try {//sleep识别到中断标志位为true,则会抛出InterruptedException异常Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();//抛异常让我们决定是否中断线程//如果我们没有中断线程,那么在抛完线程后,线程会继续执行(sleep()方法会将中断标志位重新变为false)
//                    break;}}System.out.println("线程中断");});//得到线程的状态System.out.println(thread.getState());//1.线程的创建thread.start();//2.线程的中断//2.1将中断标志位设为trueSystem.out.println(thread.getState());//线程正在执行Thread.sleep(3000);//三秒后中断线程thread.interrupt();Thread.sleep(3000);//三秒后打印线程的状态System.out.println(thread.getState());//线程中断(terminated)

           ● 运行结果:

线程会在抛异常后继续执行,反之我们选择中断线程(break注释取消),线程则不会继续执行:

注:在唤醒阻塞状态后,sleep()方法会自动将中断标志位设为false.


3.线程的等待

    去游乐场玩旋转木马,每个木马都有人坐了,我们就只能等待某一个人玩的时间到了,我们再去玩.当然也有可能我们到玩旋转木马的地方,刚好有个空位,我们就可以无需等待,直接去玩.因为多个线程之间是并发运行的,且调度顺序不确定.我们就可以让线程A先等待线程B执行完毕后再去执行.这样可以保证线程A一定在线程B后面执行.我们这里使用的是join()方法.(在哪个线程中调用则哪个线程等待,哪个线程调用则等待的是谁,比如我在主线程中调用thread.join(),那么就是主线程等thread线程执行完毕后再执行.),具体可以看示例代码及运行结果.

           ● 示例代码

        Thread thread = new Thread(() -> {//得到当前线程实例,用isInterrupted()方法去判断线程是否发生中断while (!Thread.currentThread().isInterrupted()) {System.out.println("thread1");try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();break;}}System.out.println("线程中断");});//3.线程的等待thread.join();//主线程等待thread线程执行完毕后再执行while (true) {Thread.sleep(3000);System.out.println("main");}

           ● 运行结果:

              没有规定谁等待谁,thread线程和主线程并发执行,调度顺序随机.

               thread1一直在执行,而主线程处于等待中. 


4.线程的休眠

     当一个线程执行时,如果我们可以给它设置休眠时长.(如果不设置休眠时长,那么线程会执行的非常快,有的时候可能会错过我们需要查看的打印信息).这里我们使用sleep()方法.对应参数为时间长度(单位为毫秒).

           ● 示例代码

        while (true) {try {Thread.sleep(3000);//让主线程每三秒执行一次} catch (InterruptedException e) {e.printStackTrace();}System.out.println("main");}

注:sleep是类方法,不属于某个Thread类对象,直接用类名.sleep()调用.示例代码中线程休眠的异常于main方法


5.获取当前线程实例

    在给大家解释线程中断的时候,我们用到了currentThread()方法,用于获取当前线程实例,该方法也是属于类方法,而不属于某个Thread对象.

 我们可以得到当前正在执行的线程,然后通过getId(),getState(),getName()等方法对它的id,状态,名称等属性进行获取.


分享完毕~

相关内容

热门资讯

电视安卓系统哪个品牌好,哪家品... 你有没有想过,家里的电视是不是该升级换代了呢?现在市面上电视品牌琳琅满目,各种操作系统也是让人眼花缭...
安卓会员管理系统怎么用,提升服... 你有没有想过,手机里那些你爱不释手的APP,背后其实有个强大的会员管理系统在默默支持呢?没错,就是那...
安卓系统软件使用技巧,解锁软件... 你有没有发现,用安卓手机的时候,总有一些小技巧能让你玩得更溜?别小看了这些小细节,它们可是能让你的手...
安卓系统提示音替换 你知道吗?手机里那个时不时响起的提示音,有时候真的能让人心情大好,有时候又让人抓狂不已。今天,就让我...
安卓开机不了系统更新 手机突然开不了机,系统更新还卡在那里,这可真是让人头疼的问题啊!你是不是也遇到了这种情况?别急,今天...
安卓系统中微信视频,安卓系统下... 你有没有发现,现在用手机聊天,视频通话简直成了标配!尤其是咱们安卓系统的小伙伴们,微信视频功能更是用...
安卓系统是服务器,服务器端的智... 你知道吗?在科技的世界里,安卓系统可是个超级明星呢!它不仅仅是个手机操作系统,竟然还能成为服务器的得...
pc电脑安卓系统下载软件,轻松... 你有没有想过,你的PC电脑上安装了安卓系统,是不是瞬间觉得世界都大不一样了呢?没错,就是那种“一机在...
电影院购票系统安卓,便捷观影新... 你有没有想过,在繁忙的生活中,一部好电影就像是一剂强心针,能瞬间让你放松心情?而我今天要和你分享的,...
安卓系统可以写程序? 你有没有想过,安卓系统竟然也能写程序呢?没错,你没听错!这个我们日常使用的智能手机操作系统,竟然有着...
安卓系统架构书籍推荐,权威书籍... 你有没有想过,想要深入了解安卓系统架构,却不知道从何下手?别急,今天我就要给你推荐几本超级实用的书籍...
安卓系统看到的炸弹,技术解析与... 安卓系统看到的炸弹——揭秘手机中的隐形威胁在数字化时代,智能手机已经成为我们生活中不可或缺的一部分。...
鸿蒙系统有安卓文件,畅享多平台... 你知道吗?最近在科技圈里,有个大新闻可是闹得沸沸扬扬的,那就是鸿蒙系统竟然有了安卓文件!是不是觉得有...
宝马安卓车机系统切换,驾驭未来... 你有没有发现,现在的汽车越来越智能了?尤其是那些豪华品牌,比如宝马,它们的内饰里那个大屏幕,简直就像...
p30退回安卓系统 你有没有听说最近P30的用户们都在忙活一件大事?没错,就是他们的手机要退回安卓系统啦!这可不是一个简...
oppoa57安卓原生系统,原... 你有没有发现,最近OPPO A57这款手机在安卓原生系统上的表现真是让人眼前一亮呢?今天,就让我带你...
安卓系统输入法联想,安卓系统输... 你有没有发现,手机上的输入法真的是个神奇的小助手呢?尤其是安卓系统的输入法,简直就是智能生活的点睛之...
怎么进入安卓刷机系统,安卓刷机... 亲爱的手机控们,你是否曾对安卓手机的刷机系统充满好奇?想要解锁手机潜能,体验全新的系统魅力?别急,今...
安卓系统程序有病毒 你知道吗?在这个数字化时代,手机已经成了我们生活中不可或缺的好伙伴。但是,你知道吗?即使是安卓系统,...
奥迪中控安卓系统下载,畅享智能... 你有没有发现,现在汽车的中控系统越来越智能了?尤其是奥迪这种豪华品牌,他们的中控系统简直就是科技与艺...