• 94702

    文章

  • 787

    评论

  • 12

    友链

  • 最近新加了换肤功能,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

java 线程

撸了今年阿里、腾讯和美团的面试,我有一个重要发现.......>>

一、通过实现Runnable接口来创建线程

public class TestThread implements Runnable {
    public void run() {
        try {
            for (int i = 0; i < 10; i++) {
                System.out.println("haha" + i);
                Thread.sleep(100);
            }
        } catch (Exception ex) {
        }
    }
}

使用Thread.sleep必须用try包含起来,不然会报错:Unhandled exception: java.lang.InterruptedException

调用就像下面这种直接调用即可

TestThread tt= new TestThread();
Thread thread=new Thread(tt);
thread.start();

Runnable的中文意思是“任务”,顾名思义,通过实现Runnable接口,我们定义了一个子任务,然后将子任务交由Thread去执行。注意,这种方式必须将Runnable作为Thread类的参数,然后通过Thread的start方法来创建一个新线程来执行该子任务。如果调用Runnable的run方法的话,是不会创建新线程的,这根普通的方法调用没有任何区别。查看Thread类的实现源代码会发现Thread类是实现了Runnable接口的。

注意:实现Runnable接口必须重写run方法。这种方式必须将Runnable作为Thread类的参数。

二、通过继承Thread来创建线程

public class TestThread extends Thread {
    public void run() {
        try {
            for (int i = 0; i < 10; i++) {
                System.out.println("haha" + i);
                Thread.sleep(100);
            }
        } catch (Exception ex) {
        }
    }
}

调用就像下面这种直接调用即可

TestThread tt= new TestThread();
tt.start();

注意:继承Thread类的话,必须重写run方法。不是调用run()方法启动线程,run方法中只是定义需要执行的任务,如果调用run方法,即相当于在主线程中执行run方法,跟普通的方法调用没有任何区别,此时并不会创建一个新的线程来执行定义的任务。

 

三、使用lambda来创建线程

new Thread(() ->
{
    try {
        for (int i = 0; i <10; i++) {
            System.out.println("aa" + i);
            Thread.sleep(1000);
        }
    } catch (Exception ex) {

    }
}).start();

 

 

参考链接:https://www.cnblogs.com/dolphin0520/p/3913517.html


695856371Web网页设计师②群 | 喜欢本站的朋友可以收藏本站,或者加入我们大家一起来交流技术!

欢迎来到梁钟霖个人博客网站。本个人博客网站提供最新的站长新闻,各种互联网资讯。 还提供个人博客模板,最新最全的java教程,java面试题。在此我将尽我最大所能将此个人博客网站做的最好! 谢谢大家,愿大家一起进步!

转载原创文章请注明出处,转载至: 梁钟霖个人博客www.liangzl.com

0条评论

Loading...


发表评论

电子邮件地址不会被公开。 必填项已用*标注

自定义皮肤 主体内容背景
打开支付宝扫码付款购买视频教程
遇到问题联系客服QQ:419400980
注册梁钟霖个人博客