1、volatile 关键字:(主线程无法停止)
2、ConcurrentHashMap<K,V>
HashMap 和 HashTable 的区别在于 HashTable 内部采用锁机制,是线程安全的,但是效率极低。
3、CountDownLatch 计数器(闭锁),用于 总运算等待所有的子线程结束后 再进行后续操作。代码示例:
4、Callable 接口:---- 与Runnable接口唯一的区别是 该接口内是实现的方法有返回值。
注意: task.get() 方法会一直阻塞,直到线程执行完毕,才返回结果。
5、Lock 锁机制。
线程安全问题示例:
加锁:
6、线程通信:
线程的唤醒和等待: synchronized 锁定当前对象(this),线程等待和唤醒 调用 :this.wait();this.notify();this.notifyAll();
和 锁配套的线程通信使用:
经典示例:线程交替打印。
7、锁的优化改进:ReadWriteLock
8、线程池:
使用封装好的常用API
使用自己配置的线程池:待续。