全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

java创建线程的两种方法区别

在Java中创建一个线程有两种方法:继承Thread类和实现Runnable接口。

下面通过两个例子来分析两者的区别:

1)继承Thread类

public class TestThread extends Thread {
  int count = 3;

  public TestThread(String ThreadName) {
    super(ThreadName);
  }

  @Override
  public void run() {
    for (int i = 0; i < 10; i++)
      if (count > 0) {
        System.out.println(Thread.currentThread().getName() + "--->" + count);
        count--;
      }
  }

  public static void main(String[] args) {
    //new三个线程并启动
    new TestThread("线程一").start();
    new TestThread("线程二").start();
    new TestThread("线程三").start();
  }
}

输出结果:

线程一--->3
线程一--->2
线程一--->1
线程二--->3
线程二--->2
线程二--->1
线程三--->3
线程三--->2
线程三--->1

2)实现Runnable接口

同样跟继承Thread的代码:

public class TestThread implements Runnable {
  int count = 3;

  public TestThread() {
  }

  @Override
  public void run() {
    for (int i = 0; i < 10; i++)
      if (count > 0) {
        System.out.println(Thread.currentThread().getName() + "--->" + count);
        count--;
      }
  }

  public static void main(String[] args) {
    TestThread tr = new TestThread();
    //new三个线程并启动同一个Runnable
    new Thread(tr, "线程一").start();
    new Thread(tr, "线程二").start();
    new Thread(tr, "线程三").start();
  }
}

输出结果:

线程一--->3
线程一--->2
线程一--->1 

可以发现两种新建线程的方式最后的输出结果不一样,是因为在继承Thread类中,同时创建了三个线程,每个线程都执行一个任务,相当于三个线程分别各自进行三次循环打印log;而在第二种实现Runnable接口中是创建三个Thread共同去执行tr这个Runnable,相当于三个Thread共同去执行这一个循环,使得最后count只循环了一次,剩余线程二和线程三都因为使用同一个count导致未能打印出来。

结论:

1)两种创建线程的实现方式不一样,一个通过继承一个通过实现接口,在Java中如果已经继承了其他的父类,那么只能实现接口来创建线程。

2)通过上面的例子可以看到继承Thread,每个线程都独立拥有一个对象,而实现Runnable对象,多个线程共享一个Runnable实例。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# java  # 创建线程  # Java创建多线程的两种方式对比  # 一文搞懂Java创建线程的五种方法  # java 创建线程的四种方式  # java 创建线程的几种方式  # Java线程创建的四种方式总结  # Java创建线程的七种方法总结(全网最全面)  # 两种  # 同去  # 这一  # 是因为  # 多个  # 其他的  # 而在  # 可以看到  # 有两种  # 创建一个  # 第二种  # 大家多多  # 都因  # 类中  # 打印出来  # 继承了  # extends  # int  # public  # TestThread 


相关文章: 如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  一键网站制作软件,义乌购一件代发流程?  长沙做网站要多少钱,长沙国安网络怎么样?  建站之星CMS建站配置指南:模板选择与SEO优化技巧  如何通过VPS搭建网站快速盈利?  视频网站制作教程,怎么样制作优酷网的小视频?  装修招标网站设计制作流程,装修招标流程?  制作网站的过程怎么写,用凡科建站如何制作自己的网站?  如何破解联通资金短缺导致的基站建设难题?  怀化网站制作公司,怀化新生儿上户网上办理流程?  建站之星如何助力网站排名飙升?揭秘高效技巧  山东云建站价格为何差异显著?  如何在万网自助建站平台快速创建网站?  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  建站主机选哪家性价比最高?  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  专业公司网站制作公司,用什么语言做企业网站比较好?  学校建站服务器如何选型才能满足性能需求?  如何用VPS主机快速搭建个人网站?  网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?  建站之星北京办公室:智能建站系统与小程序生成方案解析  如何配置IIS站点权限与局域网访问?  盐城做公司网站,江苏电子版退休证办理流程?  如何在服务器上三步完成建站并提升流量?  如何快速配置高效服务器建站软件?  制作宣传网站的软件,小红书可以宣传网站吗?  建站之星安装模板失败:服务器环境不兼容?  模具网站制作流程,如何找模具客户?  已有域名如何免费搭建网站?  高端企业智能建站程序:SEO优化与响应式模板定制开发  微信推文制作网站有哪些,怎么做微信推文,急?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  如何在Ubuntu系统下快速搭建WordPress个人网站?  c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】  如何在建站之星绑定自定义域名?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  制作网页的网站有哪些,电脑上怎么做网页?  如何访问已购建站主机并解决登录问题?  如何零基础在云服务器搭建WordPress站点?  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  宝塔建站后网页无法访问如何解决?  如何在IIS7中新建站点?详细步骤解析  官网建站费用明细查询_企业建站套餐价格及收费标准指南  如何快速查询域名建站关键信息?  建站之星如何取消后台验证码生成?  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  建站之星如何快速解决建站难题?  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?  制作网站哪家好,cc、.co、.cm哪个域名更适合做网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。