在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,本文主要讲述Java 创建线程的三种方法比较, 更多Java专业知识,广州疯狂java培训官网与你分享;

  编写多线程程序是为了实现多任务的并发执行,从而能够更好地与用户交互。一般有三种方法,Thread,Runnable,Callable.

  Runnable和Callable的区别是,

  (1)Callable规定的方法是call(),Runnable规定的方法是run()。

  (2)Callable的任务执行后可返回值,而Runnable的任务是不能返回值得

  (3)call方法可以抛出异常,run方法不可以

  (4)运行Callable任务可以拿到一个Future对象,表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并检索计算的结果。通过Future对象可以了解任务执行情况,可取消任务的执行,还可获取执行结果。

  1、通过实现Runnable接口来创建Thread线程:

  步骤1:创建实现Runnable接口的类:

  class SomeRunnable implements Runnable

  {

  public void run()

  {

  //do something here

  }

  }

  步骤2:创建一个类对象:

  Runnable oneRunnable = new SomeRunnable();

  步骤3:由Runnable创建一个Thread对象:

  Thread oneThread = new Thread(oneRunnable);

  步骤4:启动线程:

  oneThread.start();

  至此,一个线程就创建完成了。

  注释:线程的执行流程很简单,当执行代码oneThread.start();时,就会执行oneRunnable对象中的void run();方法,

  该方法执行完成后,线程就消亡了。

  2、与方法1类似,通过实现Callable接口来创建Thread线程:其中,Callable接口(也只有一个方法)定义如下:

  public interface Callable

  {

  V call() throws Exception;

  }

  步骤1:创建实现Callable接口的类SomeCallable(略);

  步骤2:创建一个类对象:

  Callable oneCallable = new SomeCallable();

  步骤3:由Callable创建一个FutureTask对象:

  FutureTask oneTask = new FutureTask(oneCallable);

  注释:FutureTask是一个包装器,它通过接受Callable来创建,它同时实现了Future和Runnable接口。

  步骤4:由FutureTask创建一个Thread对象:

  Thread oneThread = new Thread(oneTask);

  步骤5:启动线程:

  oneThread.start();

  至此,一个线程就创建完成了。

  3、通过继承Thread类来创建一个线程:

  步骤1:定义一个继承Thread类的子类:

  class SomeThead extends Thraad

  {

  public void run()

  {

  //do something here

  }

  }

  步骤2:构造子类的一个对象:

  SomeThread oneThread = new SomeThread();

  步骤3:启动线程:

  oneThread.start();

  至此,一个线程就创建完成了。

  疯狂Java培训专注软件开发培训,提升学员就业能力,重点提升实践动手能力。没有工作经验的学员,在疯狂java,通过大量全真经典企业级项目进行集中培训,课上讲师讲解和课下项目练习课上课下双管齐下,学员通过数月培训都可获得1-2年的工作经验,进而在同类的求职者中脱颖而出。现在企业要求员工“上岗即上手”,专业技能则成为了一个企业对应试要求最为重要的标准,他们对于求职者的技能操作提出了非常明确的要求——你有则用你,没有则pass掉。这点在IT行业表现得更加明显,这时疯狂java学员实践能力强的优势就显现出来了。疯狂java培训,让你感受Java的魅力,激发你对于编程的热爱,让你在半年的时间内掌握8-10万的代码量,掌握Java核心技术,迅速成为技能型的现代化高端人才,迅速获得高薪就业!

转载于:https://www.cnblogs.com/gojava/p/3377620.html

Java 创建线程的三种方法比较相关推荐

  1. Java创建线程的三种方法

    这里不会贴代码,只是将创建线程的三种方法做个笼统的介绍,再根据源码添加上自己的分析. 通过三种方法可以创建java线程: 1.继承Thread类. 2.实现Runnable接口. 3.实现Callab ...

  2. java 创建线程的三种方法_java 创建线程的几种方式

    说道线程,肯定会想到使用 java.lang.Thread.java这个类 那么创建线程也主要有2种方式 第一种方式: public class MyThread extends Thread { p ...

  3. Java 创建线程的三种方式

    一.继承Thread类创建 1.定义一个类继承Thread类,并重写Thread类的run()方法,run()方法的方法体就是线程要完成的任务,因此把run()称为线程的执行体: 2.创建该类的实例对 ...

  4. java 创建线程_【80期】说出Java创建线程的三种方式及对比

    点击上方"Java面试题精选",关注公众号 面试刷图,查缺补漏 >>号外:往期面试题,10篇为一个单位归置到本公众号菜单栏->面试题,有需要的欢迎翻阅. 一.Ja ...

  5. Java创建线程的三种方式

    一.继承Thread类创建线程类 (1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务.因此把run()方法称为执行体. (2)创建Thread子类的实 ...

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

    在Java中创建一个线程有两种方法:继承Thread类和实现Runnable接口. 下面通过两个例子来分析两者的区别: 1)继承Thread类 public class TestThread exte ...

  7. java创建线程的四种方法

    第一种:  通过继承Thread类创建线程 第二种: 通过实现Runnable接口创建线程 这两种早已烂记于心,这里就不作过多的介绍, 主要介绍其源码 Thread类 implements Runna ...

  8. JAVA中创建线程的三种方法及比较

    JAVA中创建线程的方式有三种,各有优缺点,具体如下: 目录 一.继承Thread类来创建线程 二.实现Runnable接口来创建线程 三.通过Callable和Future来创建线程 四.三种方式创 ...

  9. java线程三种方法,Java基础_线程的使用及创建线程的三种方法

    线程:线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务. 进程:进 ...

最新文章

  1. 单片机教学视频讲得好
  2. R语言泊松分布函数Poisson Distribution(dpois, ppois, qpois rpois)实战
  3. hdu 1224 最长路
  4. GIF动画,菊花动画,UIView动画,CoreAnimation动画(CALayer动画)的用法
  5. tcp的无延时发送_腾讯网红程序员,详解带宽、延时、吞吐率、PPS 这些都是啥?...
  6. Java语法糖之foreach
  7. 分布式的客户端-服务器结构_MMORPG游戏服务器技术选型参考
  8. 【HDU - 2612】Find a way(bfs)
  9. android jobb工具,android – 是什么导致jobb工具抛出FAT Full IOException?
  10. skcket编程实例
  11. 离线安装mysql5.6及依赖_Linux离线安装mysql 5.6详细步骤
  12. 2016年CIO的五个优先级
  13. python给pdf加水印_用PDFlib给PDF添加水印(Python)
  14. navicat导入sql语句
  15. JAVA获取服务器文件名乱码,java获取的文件名乱码问题
  16. 计算机网络管理员高级操作技能考核试卷,计算机网络管理员(高级)操作技能试题样题(2)...
  17. 手机模拟器自带root_VMOS Pro Android 手机上的模拟器 (手机版虚拟机)
  18. 合天网安实验室 渗透测试项目一
  19. CSS3效果 光斑动画(渐变)
  20. 人工智能研究中心快递柜——代码分析九

热门文章

  1. 文献阅读High-throughput sequencing of the transcriptome and chromatin accessibility in the same cell
  2. pdf内容怎么复制到word文档里_PDF转Word要收费?这4种免费实用的方法送你,一分钟统统能搞定...
  3. 数据科学中的五种认知偏差,你都了解吗?
  4. PHP两文件嵌套循环引用,php的循环与引用的一个坑,php循环引用_PHP教程
  5. 拉普拉斯变换公式表_工程数学中的积分变换的总结
  6. mrc20温控f1什么意思_精确率、召回率、F1 值、ROC、AUC 各自的优缺点是什么?
  7. 充电速度公式_手机充电效率计算
  8. 【Java程序设计】图形用户界面(一)
  9. 文件分配表(File Allocation Table)入门
  10. 使用Visual Studio来创建动态库/静态库,并加载