一、概念
什么是线程
一个线程要执行任务,必须得有线程
一个进程(程序)的所有任务都在线程中执行的
一个线程执行任务是串行的,也就是说一个线程,同一时间内,只能执行一个任务
多线程原理
同一时间,CPU只能处理1条线程,只有一条线程在工作(执行)
多线程并发(同时)执行,其实质是CPU快速的在多线程之间调度(切换)
如果线程过多,会怎样?
CPU在N多条线程中调度,会消耗大量的cpu资源
每条线程被调度执行的频率越低(线程的执行效率低)
多线程的优点
能适当提高程序的执行效率
能适当提高资源的利用率(CPU 内存利用率等)
多线程的缺点
创建线程是有开销的,iOS下主要成本包括:内核数据结构(大约1KB)、栈空间(子线程512KB、主线程1MB,也可以使用-setStackSize:设置,但必须是4K的倍数,而且最小是16K),创建线程大约需要90毫秒的创建时间
如果开启大量的线程,会降低程序的性能
程序越多CPU的线程上的开销就越大
程序设计更加复杂:线程之间的通讯,多线程的数据共享
主线程的主要作用
显示和刷新UI界面
处理UI事件(比如点击事件,滚动事件,拖拽事件等)
主线程的使用注意
别将比较耗时的操作放在主线程中,会导致UI界面的卡顿
并发编程/多线程
并发编程入门到精通
线程并发基础
- 概念部分
- 认识Java里 面的Thread
- Thread安全
- 线程安全的集合类
线程并发晋级之高级部分
- 多线程之间交互:线程阀
- 线程池
- JDK7新增的F ork/Join
实际的使用、监控与拓展
- 线程、线程池在实际互联网项目开发中的应用
- 线程的监控及其日常工作中如何分析
- Androi d中线程的应用
Java并发编程
- 并发编程的挑战
- Java并发机制的底层实现原理
- Java内存模型
- Java并发编程基础
- Java中的锁
- Java并发容器和框架
- Java中的13个原子操作类
- Java中的并发工具类
- Java中的线程池
- Executor框架
- Java并发编程实践
Java多线程设计模式
- SingleThreaded Execution 能通过这座桥的,只有一个人
- Immutable想破坏它也没有办法
- Guar dedSuspensi on要等到我准备好喔
- Ba1king不需要的话,就算了吧
- Producer-Consumer我来做,你来用
- Read-Write Lock 大家想看就看吧,不过看的时候不能写喔
- Thread-Per-Message 这个工作交给你了
- Worker Thread等到工作来,来了就工作
- Future先给你这张提货单
- Two-PhaseT erminati on快把玩具收拾好,去睡觉吧
- Thread-Specfic Storage每个线程的保管箱
- Active 0bject 接受异步消息
JVM性能调优
JVM内存区域划分
- 程序计数器(线程私有)
- Java栈(线程私有)
- 本地方法栈(线程私有)
- 堆(线程共享)
- 方法区(线程共享)
- 直接内存(线程共享)
JVM执行子系统
- Class类文件结构
- 字节码指令
- 类加载机制
- 类加载器
- T omcat类加载机制
垃圾回收器和内存分配策略
- Java中是值传递还是引用传递?
- 引用类型
- 基本垃圾回收算法
- 分代处理垃圾
- JAVA中垃圾回收CC的类型
编写高效优雅Javs程序
- 面向对象
- 方法
- 通用程序设计
性能优化
- 常用的性能评价/测试指标
- 常用的性能优化手段
- 应用服务性能优化
- 异步
- 集群
- 应用相关
MySQL实战
- MySQL架构与历史
- MySQL基准测试
- 服务器性能剖析
- Schema与数据类型优化
- 创建高性能的索引
- 查询性能优化
- MySQL高级特性
- 优化服务器设置
- 操作系统和硬件优化
- 复制
- 可扩展的MySQL
- 高可用性
- 云端的MySQL
- 应用层优化
- 备份与恢复
- MySQL用户工具
- MySQL分支与变种
- MySQL服务器状态
- 大文件传输
- EXPLAIN
- 锁的调试
- 在MySQL上使用Sphine
阿里巴巴Netty实战/网络协议
Net ty的概念及体系结构
- Netty--异步和事件驱动
- 你的第一款Net ty应用程序
- Hetty的组件和设计
- 传输
- ByteBuf
- ChannelHandler和Channe1Pipeline
编解码器
- 编解码器框架
- 预置的ChannelHandler和编解码器
网络协议
- WebSocket
- 使用VDP广播事件
案例研究
- 案例研究,第一部分
- 案例研究,第二部分
大厂Netty实战、网络协议、MySQL、JVM性能调优、Java多线程、设计模式、并发编程、Spring面试专题及答案
JVM面试专题20道
MySQL55道面试题及性能优化21个实践
并发编程71到面试专题
多线程面试专题
设计模式面试专题