【Java中的Thread线程的简单方法介绍和使用详细分析】

这篇具有很好参考价值的文章主要介绍了【Java中的Thread线程的简单方法介绍和使用详细分析】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

提示:若对Thread没有基本的了解,可以先阅读以下文章,同时部分的方法已经在如下两篇文章中介绍过了,本文不再重复介绍!!

  • 【Java中Tread和Runnable创建新的线程的使用方法】

  • 【Java中的Thread线程的七种属性的使用和分析】


提示:以下是本篇文章正文内容,下面案例可供参考

一、run() 和 start() 方法

【Java中的Thread线程的简单方法介绍和使用详细分析】,java,开发语言,java-ee

【Java中的Thread线程的简单方法介绍和使用详细分析】,java,开发语言,java-ee

代码示例 1

public class Ceshi {
    public static void main(String[] args) {
        Thread t = new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("hello world");
            }
        });
        t.run();
        System.out.println(t.isAlive());
        System.out.println(t.getState());
    }
}

输出结果

【Java中的Thread线程的简单方法介绍和使用详细分析】,java,开发语言,java-ee

代码示例 2

public class Ceshi {
    public static void main(String[] args) {
        Thread t = new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("hello world");
            }
        });
        t.start();
        System.out.println(t.isAlive());
        System.out.println(t.getState());
    }
}

输出结果

【Java中的Thread线程的简单方法介绍和使用详细分析】,java,开发语言,java-ee

由此看出:

  1. t.run()这条语句能够调用run()方法,但是没有启动线程,线程仍然处于NEW的状态,并没有启动线程,只是调用了一次run()方法。
  2. t.start()这条语句同样能够调用run()方法,但是它真正的启动t线程,线程处于RUNNABLE的状态,然后t线程调用了run()方法

二、sleep() 方法

【Java中的Thread线程的简单方法介绍和使用详细分析】,java,开发语言,java-ee

代码示例

public class Ceshi {
    public static void main(String[] args) throws InterruptedException {
        Thread t1 = new Thread(() -> {
            System.out.println("工作中");
        });
        t1.start();
        //该方法为静态方法,直接使用类名调用
        Thread.sleep(3000);//main线程休眠3秒后,才能继续执行下面的语句
        System.out.println();
        System.out.println("耗时三秒,工作完成");
    }
}

输出结果

【Java中的Thread线程的简单方法介绍和使用详细分析】,java,开发语言,java-ee

结论

  1. 该方法写在那个线程里,就会使哪个线程休眠规定的时间,其他的线程不受影响。
  2. public static void sleep(long millis, int nanos)休眠millis毫秒后,再休眠nanos纳秒(范围:0-999999纳秒)
  3. 因为线程的调度是不可控的,所以这个方法只能保证实际休眠时间是大于等于参数设置的休眠时间的。

三、join() 方法

【Java中的Thread线程的简单方法介绍和使用详细分析】,java,开发语言,java-ee

代码示例

public class Ceshi {
    public static void main(String[] args) throws InterruptedException {
        Thread t1 = new Thread(() -> {
            System.out.println("工作一需要3秒");
            try {
                Thread.sleep(4000);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        });
        Thread t2 = new Thread(() -> {
            System.out.println("工作一已完成,开始工作二");
            try {
                Thread.sleep(3000);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        });
        Thread t3 = new Thread(() -> {
            System.out.println("工作二已完成,开始工作三");
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        });
        Thread t4 = new Thread(() -> {
            System.out.println("工作三已完成,开始工作四");
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        });
        //在main线程中调用t.join(),就是让main线程等待t线程执行结束(保证t先结束)
        t1.start();
        t1.join();//t1的任务不结束,不会执行下面的语句

        t2.start();
        t2.join();//t2不结束,不继续进行

        t3.start();
        t3.join();//同理

        t4.start();
        t4.join();//同理
    }
}

输出结果

【Java中的Thread线程的简单方法介绍和使用详细分析】,java,开发语言,java-ee

结论

  1. 有时,我们需要等待一个线程完成它的工作后,才能进行自己的下一步工作。该方法能够保证线程的任务有序执行,不会发生抢占式的进行。
  2. 同时还有带参数的重载方法,public void join(long millis) 等待线程结束,最多等millis毫秒,public void join(long millis, int nanos),在millis毫秒的基础上再加上nanos纳秒(范围:0-999999纳秒)

总结

除了以上常用的方法,还有许多的方法在前言中的文章已经详细介绍和使用,如若该文中没有找到你需要的,请跳转到前言的链接文章来源地址https://www.toymoban.com/news/detail-607615.html

到了这里,关于【Java中的Thread线程的简单方法介绍和使用详细分析】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java多线程---线程的创建(Thread类的基本使用)

    本文主要介绍Java多线程的相关知识, Thread的创建, 常用方法的介绍和使用, 线程状态等. 文章目录 前言 一. 线程和Thread类 1. 线程和Thread类 1.1 Thread类的构造方法 1.2 启用线程的相关方法 2. 创建第一个Java多线程程序 3. 使用Runnable对象创建线程 4. 使用内部类创建线程 5. 使用Lamba

    2024年02月03日
    浏览(39)
  • 检查值是否存在于 Java 中的数组中的4种详细方法介绍

    在 Java 中,有许多方法可以检查此数组中是否存在特定元素。 使用线性搜索方法 使用二进制搜索方法 使用 List.contains() 方法 使用 Stream.anyMatch() 方法 时间复杂度:O(N) 辅助空间:O(1) 通过将搜索间隔重复分成两半来搜索排序数组。从覆盖整个数组的区间开始。如果搜索

    2024年02月14日
    浏览(54)
  • Jmeter系列-并发线程Concurrency Thread Group的介绍(7)

    Concurrency Thread Group提供了用于配置多个线程计划的简化方法,该线程组目的是为了保持并发水平,意味着如果并发线程不够,则在运行线程中启动额外的线程 Concurrency Thread Group提供了更好的用户行为模拟,因为它使您可以更轻松地控制测试的时间,并创建替换线程以防线程在

    2024年02月07日
    浏览(39)
  • 【多线程初阶】Thread类常见方法以及线程的状态

    本文是属于多线程初阶内容系列的, 如果还没有学习过之前文章的, 请先移步博主的之前的文章进行学习, 本文就是在学会线程的创建后, 再带大家认识一下 Thread 类以及其常见的方法, 再给大家讲解一下线程都有哪些状态. 关注收藏, 开始学习吧🧐 通过我们上篇文章的学习, 我

    2024年02月16日
    浏览(37)
  • 【STM32&RT-Thread零基础入门】 4. 线程介绍(理论)

    前文中的最后一个任务发现,一个main()函数很难同时实现按键功能和闪灯功能,就好像人很难同时完成左手画圆右手画方一样,这种情况可以安排一人去画圆、一人去画方,并行进行就很容易了,两人各司其职,互不干扰。 操作系统中,一个线程就像做事的一个人。一个操作

    2024年02月12日
    浏览(40)
  • 【多线程】认识Thread类及其常用方法

    📄 前言 : 本文是对以往多线程学习中 Thread类 的介绍,以及对其中的部分细节问题进行总结。 之前的文章介绍过线程的引入能够更好地处理程序的并发执行问题。在Java中,线程的创建方式之一是通过 Thead类 (Thead封装了操作系统提供的API,使我们创建的线程能够系统的调

    2024年01月18日
    浏览(38)
  • 最简单方法解决启动hive时报错:Exception in thread “main“ java.lang.RuntimeException: org.apache.hadoop.hdfs.serve

            相信很多人和我一样在启动完集群之后,通过“lsof -i:10000”检测是否启动成功时会遇到如下图这种情况: 等待许久依旧无法启动成功,从而DataGrip无法连接数据库。         经过回头检验发现在启动metastore后,hive检验时报错如下图: 很容易我们可以关注到:

    2024年04月29日
    浏览(69)
  • JavaEE之多线程编程:2.创建线程及Thread类常见方法(超全!!!)

    Java中创建线程的写法有很多种!!!这里介绍其中5种。 方法1:继承Thread类,重写run 创建一个类,让这个类继承自Thread父类,再重写我们的run方法就可以了。 使用Thread类,不需要import别的包,因为它是再Java.lang下面的。 注意: start() 是创建了一个新的线程,由新的线程来执

    2024年02月04日
    浏览(34)
  • 【JavaEE】_多线程Thread类及其常用方法

    目录 1. Thread类常用构造方法 2. Thread类的几个常见属性 3. 启动一个线程 4. 中断一个线程 4.1 方法1:手动设置标志位 4.2 方法2:使用Thread内置的标志位 5. 等待一个线程 6. 获取当前线程引用 7. 休眠当前线程 方法 说明 Thread() 创建线程对象 Thread(Runnable target) 使用Runnable对象创建

    2024年02月20日
    浏览(38)
  • 【JavaEE多线程】Thread类及其常见方法(上)

    🌈 座右铭 🌈 :人的一生这么长、你凭什么用短短的几年去衡量自己的一生! 💕个人主页: 清灵白羽 漾情天殇_计算机底层原理,深度解析C++,自顶向下看Java-CSDN博客 ❤️ 相关文章 ❤️:清灵白羽 漾情天殇-CSDN博客 目录 系列文章目录 前言 一、Thread构造方法         1、Th

    2024年04月22日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包