它们分别是AbortPolicy,CallerRunsPolicy,DiscardOldestPolicy和DiscardPolicy
Executors少了一个创建线程池的方法newScheduledThreadPool()
相对传统的synchronized而言,Lock提供有公平和非公平策略,所以Lock的应用更加灵活。
可以看到程序始终没有成功输出主线程中的判断条件内的内容,说明主线程存储的flag变量的值仍然始终是false,但是子线程中已经成功修改了flag的值为false,这就是并发编程下多线程访问变量的不可见性问题。...
本质就是一个能够容纳多个线程的容器,其中的线程可以反复利用,省去了频繁创建线程对象的操作,无需因为反复创建线程对象而消耗过多资源