1、Java线程的几种状态:NEW/RUNNABLE/RUNING/BLOCKED/TEMINATED
2、java线程是一个典型的模板设计模式
3、创建线程的两种方式:
1)thread类
2)实现RUNANBLE接口
thread和runnable的区别:thread负责线程本身相关的职责和管理(比如编号、优先级等)、而runnable则负责逻辑执行单元的部分!
4、sleep不会放弃monitor锁的所有权!
5、yield把running切换到runnable。主动放弃CPU资源
6、interrupt会让线程进入blocked状态
7、join方法收集所有分布式线程的结果到一起!
8、关注如何优雅的关闭一个线程!使用锁??
9、wait/notify用于一对一线程单线程之间的通信,wait/notisfyall用于多对多多线程之间的通信。其中notisfy能同时唤起所有的阻塞阻塞去争取锁!
10、线程之间的通信使用队列的wait、notify、notifyall来控制
11、进程之间的异步通信使用MQ消息队列中间件来控制!
12、synchronized锁关键字!争取monitor锁!
13、使用Java JDK提供的current包来进行多线程编程!注意线程池各种使用,另外也要注意funtur模式,如何把所有多线程的数据组合起来!!