看到 Thread 我们想到的是线程,

在说线程的使用的先简单的说下线程与进程的区别,这个面试题遇到的概率比较大,

进程:是系统进行资源分配的独立单元,   自己的理解就是 进程是程序的一次执行过程

线程:是cpu调度的基本单元,  自己的理解就是 线程是在进程中独立运行的子任务

下面说下线程Tread 的使用,一般都是3中启动的方法,

1 继承Thread类的实现

public class MyThread extends Thread {@Overridepublic void run() {super.run();// do something}}

启动的方法

        MyThread myThread = new MyThread();myThread.start();// 或者new MyThread().start();

如果不想创建一个类可以直接new Thread;

 new Thread(){@Overridepublic void run() {super.run();// do something}}.start();

2 通过实现runnable接口来实现

  public class RunnableThread implements Runnable {@Overridepublic void run() {// do something}}

启动方法

 RunnableThread runnableThread = new RunnableThread();new Thread(runnableThread).start();// 或者new Thread( new RunnableThread()).start();

如果不想创建一个类可以直接new Thread ;

 new Thread(new Runnable() {@Overridepublic void run() {// do something  }}).start();

通过Handler 启动线程

 private Handler mHandler = new Handler();private Runnable runnable = new Runnable() {@Overridepublic void run() {// do something}};

启动方法

mHandler.post(runnable);

终止线程的方法: 通过标记boolean变量

比如定义boolean 变量

private boolean isStart = false;
 public class RunnableThread implements Runnable {@Overridepublic void run() {while (!isStart){}}}

然后我们可以通过boolean 值 来控制线程

最后补充

使用Thread 我们需要注意 lambda 情况的简写

比如下面的写法就是使用到了lambda

new Thread(this::Task).start();

这个就是线程里面写了一个Tast() 方法

下面写下它们的演化

 new Thread(new Runnable() {@Overridepublic void run() {Task();}}).start();

使用lambda 之后就这样了

new Thread(this::Task).start();

当然写成这样也是可以的

  new Thread(() -> Task()).start();

Android/Java 中线程(Thread)的使用相关推荐

  1. Java中的Thread.sleep()– Java线程睡眠

    Java中的Thread.sleep (Thread.sleep in Java) Thread.sleep() method can be used to pause the execution o ...

  2. JAVA中线程同步的几种实现方法

    JAVA中线程同步的几种实现方法 一.synchronized同步的方法: 1.synchronized同步方法 即有synchronized关键字修饰的方法. 由于java的每个对象都有一个内置锁, ...

  3. JAVA中线程同步的方法(7种)汇总

    JAVA中线程同步的方法(7种)汇总 同步的方法: 一.同步方法 即有synchronized关键字修饰的方法. 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时, 内置锁会保护整个方法. ...

  4. java中线程的生命周期

    文章目录 java中Thread的状态 NEW Runnable BLOCKED WAITING TIMED_WAITING TERMINATED java中线程的生命周期 线程是java中绕不过去的 ...

  5. Java中继承thread类与实现Runnable接口的区别

    Java中线程的创建有两种方式: 1.  通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中 2.  通过实现Runnable接口,实例化Thread类 在实际应用中, ...

  6. Java中线程池,你真的会用吗

    转载自   Java中线程池,你真的会用吗 在<深入源码分析Java线程池的实现原理>这篇文章中,我们介绍过了Java中线程池的常见用法以及基本原理. 在文中有这样一段描述: 可以通过Ex ...

  7. java中线程死锁及避免_如何避免Java线程中的死锁?

    java中线程死锁及避免 如何避免Java中的死锁? 是Java面试中最受欢迎的问题之一,也是本季多线程的风格,主要是在高层提出,并带有很多后续问题. 尽管问题看起来很基础,但是一旦您开始深入研究,大 ...

  8. Java中线程池,你真的会用吗?

    在<深入源码分析Java线程池的实现原理>这篇文章中,我们介绍过了Java中线程池的常见用法以及基本原理. 在文中有这样一段描述: 可以通过Executors静态工厂构建线程池,但一般不建 ...

  9. 面试官:Java中线程是按什么顺序执行的?

    本文分享自华为云社区<[高并发系列]Java中线程到底是按什么顺序执行的?你了解的可能是错误的!>,原文作者:冰 河 . Java中线程的执行顺序可能与你想的不一样!一文解密多线程的执行顺 ...

最新文章

  1. Web service 介绍与简单应用
  2. api过滤器_了解播放过滤器API
  3. 057-while循环
  4. redis源码剖析(八)—— 当你启动Redis的时候,Redis做了什么
  5. 爬虫图片href是html图片,xpath爬虫实例,爬取图片网站百度盘地址和提取码
  6. php网站建设实训引言_网站建设实训报告
  7. C++——二维vector初始化大小方法
  8. STM32F103_ADC-DMA通道采集
  9. 《『若水新闻』客户端开发教程》——05.设计新闻列表UI
  10. 地址null一个简单的第三人称汽车驾驶系统
  11. 韩顺平 2021零基础学Java 学习笔记(1)(自用)
  12. 最新版本启动HBuilderX.exe时,被联想mcafee杀毒软件删除的解决方法
  13. usb 驱动之usbip
  14. php amr mp3,php实现微信语音amr文件在线播放方法
  15. DeepFlow: Deep Learning-Based Malware Detection by Mining Android Application for Abnormal Usage 2
  16. android自动改,【玩机组ROM修改教程】自己修改安卓ROM 刷机包教程
  17. B站数据分析岗实习生面试记录
  18. 双目立体视觉几何框架详解
  19. ctfshow 做题 萌新 模块(3)
  20. 【区块链 | 审计】关于审计技术和工具 101事

热门文章

  1. 毕业,新的开始,撸起袖子加油干!
  2. 【VB】学生信息管理系统3——连接数据库的前提
  3. SQL case when
  4. starrocks问题小结
  5. Python 正则表达式各种特殊符号 重点
  6. The bean 'xxxx.FeignClientSpecification', defined in null, could not be registered. A bean with that
  7. 新一代图像AI ISP技术
  8. 个性化排序的神经协同过滤
  9. CVPR2020:端到端学习三维点云的局部多视图描述符
  10. DCN-s4600 跨vlan访问