Android 学习笔记(3)之多线程和线程性能优化1

1,CPU核心数和线程数的关系
1:1 加入超线程 1:2 4核对应8线程
2,CPU时间片轮转机制 RR调度
每个进程被分配一个时间段,称作它的时间片,即该进程允许运行的时间
上下文切换( context switch),需要5ms 时间片 一般100ms(短效率低,长难等待)
3,什么是进程和线程
进程是程序运行资源分配的最小单位 相互独立 系统/用户线程 资源包括:CPU、内存空间、磁盘10等
线程是CPU调度的最小单位,必须依赖于进程而存在 资源(如程序计数器,一组寄存器和栈)
4,澄清并行和并发 一个是同时执行,一个是交替执行
并行 同时 指应用能够同时执行不同的任
并发:单位时间内 实现(时间片轮转进程调度算法)指应用能够交替执行不同的任
5,高并发编程的意义、好处和注意事项
充分利用CPU的资源 加快响应用户的时间 可以使你的代码模块化,异步化,简单化
缺点:线程安全 死循环 太多线程死机

6,线程的启动与中止
1、X extends Thread;,然后X.run
2、X implements Runnable;然后交给Thread运行
3、X implements Callable; 先FutureTask包装 Callable;然后交给Thread运行可获取结果
中止 stop()已弃用, 退出标识flag 中断机制 interrupt()方法 软中断不会立即结束
suspend()、resume()和stop()都过期
7,start和run方法的区别
run方法为普通方法,start 启动线程
8,三个方法区别,
interrupt() 中断一个线程,设置标志位
isInterrupted() 线程是否中断,true/false
静态方法Thread.interrupted() 线程是否中断。并且清理标志位。

阻塞状态检测中断位会异常,抛出InterruptedException异常的时候,要注意中断标志位
处于死锁状态的线程无法被中断

9,线程理解 start() 就绪 join() 获取执行权 指定的线程加入到当前线程(可将交替执行的线程合并为顺序执行)
yield() 让出CPU占有权 就绪
阻塞状态(sleep(),wait(),join()) sleep时间到,notify/notifyAll() 就绪

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值