一、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)




