转载自  Java多线程:实现方式

在Java中, 多线程的实现有两种方式:
扩展java.lang.Thread类
实现java.lang.Runnable接口

方法1

/** * @Description: 继承Thread类, 实现多线程. * @author snoopy * @blog http://blog.csdn.net/huang_xw */
package basic.a_start;  import org.apache.log4j.Logger;  public class TestThread extends Thread {  private static Logger logger = Logger.getLogger(TestThread.class);  public static void main(String[] args) {  TestThread test = new TestThread();  logger.debug("在Main线程中启动线程!");  test.start();  }  public void run() {  logger.debug("在线程中运行!");  }
}  

方法2

/** * @Description: 测试Runnable类实现的多线程程序 * @author snoopy * @blog http://blog.csdn.net/huang_xw */
package basic.a_start;  import org.apache.log4j.Logger;  public class TestRunnable {  private static Logger logger = Logger.getLogger(TestRunnable.class);  public static void main(String[] args) {  // 1. 将任务处理代码移到实现了Runnable接口的类的run方法中。  // 2. 创建任务类的一个对象  // 3. 由Runnable创建Thread对象  // 4. 启动线程  ImpRunnable r1 = new ImpRunnable();  ImpRunnable r2 = new ImpRunnable();  // 给线程命名有两种方式  // 1.虚拟机命名 2.用Thread类的构造方法  Thread t1 = new Thread(r1, "线程1");  Thread t2 = new Thread(r2, "线程2");  t1.start();  t2.start();  }
}  class ImpRunnable implements Runnable {  private static Logger logger = Logger.getLogger(ImpRunnable.class);  // 当线程目标run()方法结束时该线程完成。  public void run() {  for (int i = 0; i < 10; i++) {  // for循环用来模拟一个耗时的操作  for (long k = 0; k < 100000000; k++)  ;  // 获取当前线程的对象的方法是: Thread.currentThread()  logger.debug(Thread.currentThread().getName() + " 运行" + ": 第" + i + "次");  }  }
}  

Java多线程:实现方式Thread与Runnable相关推荐

  1. Java多线程-通讯方式

    Java多线程-通讯方式 线程之间为什么要通信? 通信的目的是为了更好的协作,线程无论是交替式执行,还是接力式执行,都需要进行通信告知.那么java线程是如何通信的呢,大致有以下六种方式. Java线 ...

  2. Java多线程(一):Runnable和Thread的基本用法

    Runnable Runnable 是个函数式接口,因此可以通过lambda表达式初始化.其内部只有一个run方法,源码比较简单,如下: @FunctionalInterface public int ...

  3. 多线程的实现方式_一文搞懂Java多线程使用方式、实现原理以及常见面试题

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  4. java实现多线程抢单_来聊一聊3种实现JAVA多线程的方式吧

    在Java中,实现多线程的方式有3种,分别是继承Thread类.实现Runnable接口.实现Callable接口.关于它们是如何实现,有何区别呢? 方式一:继承Thread类 一个普通类只要继承了传 ...

  5. 夯实Java基础系列17:一文搞懂Java多线程使用方式、实现原理以及常见面试题

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  6. Java多线程实现方式

    文章目录 实现方式 继承Thread类实现多线程 实现Runnable接口实现多线程.示例如下: 实现Callable接口并通过FutureTask包装器创建线程.示例如下: 使用ExecutorSe ...

  7. 使用线程锁(lock)实现线程同步_一文搞懂Java多线程使用方式、实现原理以及常见面试题...

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  8. java多线程创建方式以及线程安全

    什么是线程 线程被称为轻量级进程,是程序执行的最小单位,它是指在程序执行过程中,能够执行代码的一个执行单位.每个程序程序都至少有一个线程,也即是程序本身. 线程的状态 新建(New):创建后尚未启动的 ...

  9. java 创建线程thread_初学Java多线程:用Thread类创建线程

    在Java中创建线程有两种方法:使用Thread类和使用Runnable接口.在使用Runnable接口时需要建立一个Thread实例.因此,无论是通过Thread类还是Runnable接口建立线程, ...

最新文章

  1. “一线城市,年薪30万+,我却裸辞回老家”一个前程序员的 10 年职业思考
  2. 框架模式 MVC 在Android中的使用
  3. Ruby on Rails的下载及安装以及开发环境的搭建
  4. struts2使用注解--ACTION中的应用
  5. 下一代Android或官方支持“App2sd”
  6. laravel session redis 设置
  7. 教育部:麻省理工学院2019年本科生未招收一名中国大陆的学生不属实
  8. 23种设计模式之装饰模式
  9. 信息学奥赛一本通(1261:【例9.5】城市交通路网)
  10. 创建设计模式 - Builder设计模式
  11. [导入].net中设置系统时间
  12. 2020-11-30 03_空域图像处理 笔记
  13. 黑马程序员2022年最新软件测试学习路线
  14. win7备份工具_调解 win7系统一键还原精灵使用的具体方法 -win7系统使用教程
  15. 台式计算机2017排行分析,台式电脑CPU性能排行 桌面CPU天梯图2017年9月最新版 (全文)...
  16. openbsd_OpenBSD与Linux,Gentoo与Microsoft相遇
  17. css3 图片阴影、翘边效果
  18. rk3568安卓11系统之开发环境搭建
  19. C#双色球——简单抽取中奖号码
  20. 1、 输入长方形的长和宽,编程求该长方形的周长和面积

热门文章

  1. ciclop读音,购机必备,15种 3D扫描 设备 优缺点汇总
  2. C++文本文件操作和二进制文件读写
  3. [Java基础]Lambda表达式的注意事项
  4. DevC++如何安装自定义头文件并使用
  5. SpringBoot项目新手——问题疑惑及解决笔记
  6. Good Number Gym - 102769G 2020年CCPC秦皇岛分站赛
  7. c语言加花指令,花指令的应用
  8. Educational Codeforces Round 17 E. Radio stations cdq分治 + 树状数组
  9. Educational Codeforces Round 73 (Rated for Div. 2) Make The Fence Great Again dp + 结论
  10. ARC079F - Namori Grundy(构造,基环树)