多线程很复杂的,内容很多的,大块的大家去看我多线程的文章,基本都涵盖到了,这里记录下面是的一些问题,怎么回答,不会大块介绍知识点

大家在复习多线程时需要学习下面的内容:

线程池、SYNC和Lock锁机制、线程通信、volatile、ThreadLocal、CyclicBarrier、Atom包、CountDownLatch、AQS、CAS原理

下面这些我就不写了:

atomic 与 volatile的区别?

Thread的 notify()给notifyAll()的区别?

notifiy()是唤醒的那一个线程?

Thread.sleep()唤醒以后是否需要重新竞争?

GC回收算法,及实现原理?

java 多线程基础部分

继承Thread类

实现Runnable接口

java 多线程进阶部分

wait()、notify() 等待通知方式

join() 方式

volatile 共享内存

CountDownLatch、CyclicBarrier 并发工具,功能和 join 相同

interrupt() 线程响应中断

线程池 awaitTermination() ,等待线程池任务结束方式,这种方式需要关闭线程池才有效

PipedWriter、PipedReader 管道通信方式

饿汉式单例模式的写法:线程安全

懒汉式单例模式的写法:非线程安全

双检锁单例模式的写法:线程安全

android 自身部分

先说 handle 的4个角色:

Handler - 消息发送器,内部持有一个 MessageQueue 消息队列,在发送消息时把 message.obj 指向 handle 自己,这样实现最终的消息执行

messageQueue - 消息队列,消息的储存单位

Looper - 遍历 MessageQueue 队列,启动主线程的阻塞式死循环

message - 通信的消息实体,使用 handle 发送消息时,其内部的 obj 会被指向该 handle 的引用

再说下逻辑过程:

开启循环 - 每个线程只有一个Looper,用来阻塞式循环,每个Looper对应一个MessgeQueue;无限的循环遍历MessageQueue,如果里边有消息就去处理消息,消息处理完继续循环,这样就一直循环下去,也是我们程序为什么不会退出的原因

发送消息 - handler创建的时候会根据线程去绑定,拿到对应线程的队列looper和MessageQueue,发送消息的过程就是在其他线程把Message放到MessageQueue当中

回调消息 - handler发送消息的时候会对Message消息打上tag,当looper遍历到Message对象,这个时候已经到了主线程,Message.tag就拿到了handler对象,然后回调对应的方法handler.handleMessage

handler.handleMessage(msg)

handler.post(Runnable r)

view.post(Runnable r)

Activity的 runOnUiThread(Runnable r)

CyclicBarrier的某个线程运行到某个点上之后,该线程即停止运行,直到所有的线程都到达了这个点,所有线程才重新运行,CountDownLatch则不是,某线程运行到某个点上之后,只是给某个数值-1而已,该线程继续运行

CyclicBarrier只能唤起一个任务,CountDownLatch可以唤起多个任务

CyclicBarrier可重用,CountDownLatch不可重用,计数值为0该CountDownLatch就不可再用了

Android面试线程,android 面试题 - 多线程部分相关推荐

  1. 【Android面试】Android面试题集锦 (陆续更新)

    [Android面试]Android面试题集锦 (陆续更新) 分类: [杂七杂八]2011-05-11 17:58 2064人阅读 评论(0) 收藏 举报 一些常见的Android面试基础题做下总结, ...

  2. 【Android面试】Android面试题集锦 (陆续更新)(最新2012-6-18)

    1.android开发新浪面试题[开发者必看哦] 下载地址 http://www.eoeandroid.com/thread-177885-1-1.html 2.华为关于android笔试题案例解析 ...

  3. 【Android面试】Android面试题集锦 (陆续更新)(最新2012-6-18) eoe上看到的

    ===============eoeAndroid社区推荐:======================= 1.Android开发新浪面试题[开发者必看哦] 下载地址 http://www.eoean ...

  4. android面试经典,Android经典面试题集锦(一)

    1.描述你知道的Android机型适配方案: 答:1.Linearlayout的weiget属性:2.res目录下自定义各种不同机型尺寸的values包中的dimens.xml文件:3.今日头条开源的 ...

  5. android异步线程未执行,关于多线程:当服务在后台运行时,Android异步任务无法正常运行(doInBackground未执行)...

    我注意到有时Async任务无法正常运行,实际上它的doInBackground()方法没有被调用,这种情况主要发生在该活动在后台运行任何服务时. 例如,当音乐在带有服务的后台运行时,Async任务不会 ...

  6. 【Android面试】Android中高级开发面试必问,7年外包一飞冲天

    Andorid 开发在前两年也非常火热,但随着客户端开发招聘回归理性,行业已经越来越成熟,岗位招聘也就自然而然地变"卷"了.这一点,身为程序员老鸟的我深有体会. 年初,我就开始投递 ...

  7. Android 面试(Android 篇)

    Android 面试 安卓篇 一.跨进程通信的几种方式 二.多进程应用使用场景 三.Binder 机制 (进程间的通信) 四.说一说 ANR 五.什么是OOM,如何避免解决 六.内存泄露,内存溢出,内 ...

  8. android面试 handler,Android面试之Handler相关学习

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? ###Android面试之Handler相关学习 1.Android消息机制之Looper.java源代码学习 1). ...

  9. android 组件 线程,Android UI线程和非UI线程

    UI线程及Android的单线程模型原则 当应用启动,系统会创建一个主线程(main thread). 这个主线程负责向UI组件分发事件(包括绘制事件),也是在这个主线程里,你的应用和Android的 ...

  10. android c++ 线程,Android多线程分析之二:Thread的实现

    Android多线程分析之二:Thread的实现在前文<Android多线程分析之一:使用Thread异步下载图像>中演示了如何使用 Thread 处理异步事务.示例中这个 Java Th ...

最新文章

  1. 在指定位置上方出现通用jquery悬浮提示框插件全站通用
  2. python 字典 列表 速度_高效使用Python字典的清单
  3. MySQL 5.7安装(linux)
  4. Codeforces Round #552 (Div. 3) —— B. Make Them Equal
  5. 音视频技术开发周刊 | 134
  6. javafx 和swing_集成JavaFX和Swing
  7. 玩转ceph性能测试---对象存储(一)
  8. JAD文件各属性解释
  9. OSS文件存储方案-阿里云
  10. 2021年道路运输企业安全生产管理人员考试内容及道路运输企业安全生产管理人员题库
  11. 烤仔观察丨和你息息相关!DCEP 能否领跑?各国数字货币都在搞什么?
  12. html 实现b站弹幕,可实现B站 蒙版弹幕 效果的前端组件 —— Barrage UI
  13. 数字图像处理_07.2_(顶帽变换,击中击不中原理)
  14. Nginx(1)基础部分
  15. Excel2——在同一个图中如何绘制多条曲线并标注图例
  16. 设计师需要什么证书及学历
  17. java斗地主发牌_实现斗地主发牌(java)
  18. BUUCTF:[SWPU2019]神奇的二维码
  19. 现代控制理论(3)——线性控制系统的能控性和能观性
  20. HTML和CSS的学习(1~20节)

热门文章

  1. ssm java当前项目路径_SSM项目中动态获取路径
  2. kotlin入门最容易教程一(最全,最详细)
  3. ogg怎么转mp3格式,ogg转mp3方法
  4. C++设计模式:抽象工厂模式
  5. oracle数据库,使用plsql导出表数据缺少空表
  6. 浏览器密码查看工具-WebBrowserPassView使用实验 ——合天网安实验室学习笔记
  7. OSEK Os的任务调度
  8. 云原生存储和云存储有什么区别?
  9. WGS84坐标系、Web墨卡托、GCJ02坐标系、BD09坐标系—常用坐标系简述
  10. 视频教程-Hive在大数据分析和大数据仓库中应用实战-大数据