Android/Java 中线程(Thread)的使用
看到 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)的使用相关推荐
- Java中的Thread.sleep()– Java线程睡眠
Java中的Thread.sleep (Thread.sleep in Java) Thread.sleep() method can be used to pause the execution o ...
- JAVA中线程同步的几种实现方法
JAVA中线程同步的几种实现方法 一.synchronized同步的方法: 1.synchronized同步方法 即有synchronized关键字修饰的方法. 由于java的每个对象都有一个内置锁, ...
- JAVA中线程同步的方法(7种)汇总
JAVA中线程同步的方法(7种)汇总 同步的方法: 一.同步方法 即有synchronized关键字修饰的方法. 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时, 内置锁会保护整个方法. ...
- java中线程的生命周期
文章目录 java中Thread的状态 NEW Runnable BLOCKED WAITING TIMED_WAITING TERMINATED java中线程的生命周期 线程是java中绕不过去的 ...
- Java中继承thread类与实现Runnable接口的区别
Java中线程的创建有两种方式: 1. 通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中 2. 通过实现Runnable接口,实例化Thread类 在实际应用中, ...
- Java中线程池,你真的会用吗
转载自 Java中线程池,你真的会用吗 在<深入源码分析Java线程池的实现原理>这篇文章中,我们介绍过了Java中线程池的常见用法以及基本原理. 在文中有这样一段描述: 可以通过Ex ...
- java中线程死锁及避免_如何避免Java线程中的死锁?
java中线程死锁及避免 如何避免Java中的死锁? 是Java面试中最受欢迎的问题之一,也是本季多线程的风格,主要是在高层提出,并带有很多后续问题. 尽管问题看起来很基础,但是一旦您开始深入研究,大 ...
- Java中线程池,你真的会用吗?
在<深入源码分析Java线程池的实现原理>这篇文章中,我们介绍过了Java中线程池的常见用法以及基本原理. 在文中有这样一段描述: 可以通过Executors静态工厂构建线程池,但一般不建 ...
- 面试官:Java中线程是按什么顺序执行的?
本文分享自华为云社区<[高并发系列]Java中线程到底是按什么顺序执行的?你了解的可能是错误的!>,原文作者:冰 河 . Java中线程的执行顺序可能与你想的不一样!一文解密多线程的执行顺 ...
最新文章
- Web service 介绍与简单应用
- api过滤器_了解播放过滤器API
- 057-while循环
- redis源码剖析(八)—— 当你启动Redis的时候,Redis做了什么
- 爬虫图片href是html图片,xpath爬虫实例,爬取图片网站百度盘地址和提取码
- php网站建设实训引言_网站建设实训报告
- C++——二维vector初始化大小方法
- STM32F103_ADC-DMA通道采集
- 《『若水新闻』客户端开发教程》——05.设计新闻列表UI
- 地址null一个简单的第三人称汽车驾驶系统
- 韩顺平 2021零基础学Java 学习笔记(1)(自用)
- 最新版本启动HBuilderX.exe时,被联想mcafee杀毒软件删除的解决方法
- usb 驱动之usbip
- php amr mp3,php实现微信语音amr文件在线播放方法
- DeepFlow: Deep Learning-Based Malware Detection by Mining Android Application for Abnormal Usage 2
- android自动改,【玩机组ROM修改教程】自己修改安卓ROM 刷机包教程
- B站数据分析岗实习生面试记录
- 双目立体视觉几何框架详解
- ctfshow 做题 萌新 模块(3)
- 【区块链 | 审计】关于审计技术和工具 101事