摘要: ThreadLocal用于给各线程保存其特有的变量副本。每个线程都可以独立改变自己的副本,而不于其他线程的副本冲突。为多线程的并发访问提供了一种隔离机制。 变量值并非保存在ThreadLocal中,而是保存在各线程的私有变量ThreadLocal.ThreadLocalMap中,ThreadLoca 阅读全文
posted @ 2021-10-15 15:46 GitHub-ahao 阅读(33) 评论(0) 推荐(0)
摘要: 可重入锁:支持一个线程对锁的重复获取。 公平锁/非公平锁:释放锁后按时间先后顺序获取锁/释放锁后所有线程均有机会获得锁,一般非公平锁效率更高 synchronized 是Java原生的互斥同步锁,是内置的语言实现,修饰方法或同步块,无需显示释放 ReentrantLock是API层面的互斥锁,需要显 阅读全文
posted @ 2021-10-15 14:03 GitHub-ahao 阅读(28) 评论(0) 推荐(0)
摘要: CountDownLatch 是一个线程同步工具类,允许一个或多个线程一直等待,直到其他线程完成工作。其核心是一个计数器,仅允许初始化时设定值,调用await()方法并在这个方法上阻塞,其余线程持有引用,调用countdown()方法使得count减一,count为零时阻塞线程继续执行。 Cycli 阅读全文
posted @ 2021-10-15 10:49 GitHub-ahao 阅读(27) 评论(0) 推荐(0)
摘要: 并发三大特性: 原子性:即对于一组操作,要么都成功,要么都失败。例如常见的转账操作就必须保证原子性。 可见性:每个线程的私有内存改变变量值时,其他线程对其可见。原因是每个线程为了提高运行效率,会从主存获取数据到本地,本地数据更新后,其他线程未同步数据,会道闸数据异常。 有序性:程序按一定的顺序执行, 阅读全文
posted @ 2021-10-15 09:51 GitHub-ahao 阅读(93) 评论(0) 推荐(0)