一、Thread线程
main thread为主线程,在主线程中开辟一个新的线程,两个线程会一并执行,互不影响,当两个线程执行完毕之后程序结束!
二、术语:线程被抢占
三、线程的属性
四、实例代码
五、Join and Sleep(单位毫秒)
Join:等待新开辟的线程执行结束,在执行主方法的程序
Sleep:线程休眠!停止当前线程等待对应时间!
sleep和yield功能基本一致
六、线程阻塞
七、ThreadState(判断当前线程状态)
ThreadState:为一个flag enum(枚举),通过按位的形式,可以合并数据的选项
线程执行流程图
八、解除阻塞Unblocking
九、本地vs共享状态(尽量避免线程数据共享)
本地:线程于线程之间的变量是独立的
共享:线程之间共享一个变量信息
静态字段在多线程中也是信息共享的
十、线程安全
lock加锁,只有一个线程可使用锁中内容,如果有一个线程在进行操作,那么另一个线程会进入一个假死状态,等待上一个线程结束后在执行锁中的内容!
十一、向线程传递数据
1.使用lambda表达式传递参数
2.使用Threead的start传递参数(传递的参数的值类型为object类型)
十二、异常处理(try catch语句放于方法之中,新开辟的线程不会被异常捕获到)
十三、前台和后台线程(Foreground VS Background Threads)
十四、线程的优先级
十五、信号(Signaling)
十六、富客户端应用程序的线程
十七、同步上下文(Synchronizationb Contexts)
十八、线程池(Thread Pool)