1、开启线程的三种方式
https://www.cnblogs.com/xiaostudy/p/9800601.html
2、线程run()和start()方法区别
https://blog.csdn.net/QQ2899349953/article/details/81772104
3、控制某个方法允许并发访问线程的个数
SemaphoreTestMain
https://www.jianshu.com/p/9a831edfdf25
4、java wait和sleep方法区别
https://blog.csdn.net/cwl_0514/article/details/79894108
5、wait/notify关键字的理解
https://blog.csdn.net/wthfeng/article/details/78762343
6、什么导致线程阻塞
https://blog.csdn.net/weixin_41101173/article/details/79679300
7、线程关闭
https://blog.csdn.net/u010199866/article/details/82668417
interrupt future.cancle shutdown sutdownnow
8、同步方法
https://www.cnblogs.com/duanxz/p/3709608.html?utm_source=tuicool&utm_medium=referral