前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 03 - Thread与Runnable

Java 03 - Thread与Runnable

作者头像
Reck Zhang
发布2021-08-11 12:12:39
2750
发布2021-08-11 12:12:39
举报
文章被收录于专栏:Reck Zhang

Thread与Runnable

在Java创建一个线程的时候, 通常是有两种方法, 一种是重写run()方法, 调用对象实例的start()方法; 一种是实现Runnable接口, 重写run()方法, 将对象实例作为Thread类初始化方法的实参, 并调用新生成的Thread类实例的start()方法.

Thread

older syntax:

代码语言:javascript
复制
public class MyThread extends Thread {
    public void run() {
        // your code here
    }
}

MyThread myThread = new MyThread();
myTread.start();

或者:

代码语言:javascript
复制
Thread thread = new Thread() {
    public void run() {
        // your code here
    }
}

thread.start();

lambda:

代码语言:javascript
复制
new Thread(() -> /* your code here*/ ).start();

Runnable

older syntax:

代码语言:javascript
复制
// pre java 8 lambdas
Thread t = new Thread(new Runnable() {
    public void run() {
        // your code here ...
    }
});

t.start();

lambda:

代码语言:javascript
复制
Runnable runnable = () -> { 
    // your code here ...
};
Thread t = new Thread(runnable);
t.start();

对比

实现Runnable接口相较于继承Thread的优势:

  1. 适合多个相同的程序代码的线程去处理一个资源, 在实现Runnable接口的实例中, 各个线程共享该实例的数据域, 但是可能需要进行同步约束.
  2. 可以避免Java中的单继承限制.
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-07-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Thread与Runnable
    • Thread
      • Runnable
        • 对比
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档