多线程学习笔记
文章平均质量分 72
tanglihai
这是一个JAVA开发者
展开
-
多线程学习之Lock和Condition(二)
在多线程领域,有两大问题,一个是同步(线程之间如何通信、协作),一个是互斥(同一时刻只能允许一个线程对共享资源进行访问),Lock锁是用于解决互斥问题,Condition用于解决同步问题。 一、为什么需要使用Lock锁? Java中提供了基于管程实现的synchronized锁能够解决同步、互斥的问题,而且synchronized锁在jdk1.6之后使用性能上也和Lock锁差不多,那为什么还要...原创 2020-03-02 23:04:56 · 254 阅读 · 0 评论 -
多线程学习之基础理论知识(一)
多线程的三大问题:可见性、原子性,有序性。 1.可见性:因CPU缓存导致,因为多线程的本质就是利用上多核CPU的性能,由于每个现代CPU都有一级或者二级CPU cache用来提升性能,所以如果使用多线程对堆数据进行修改操作,势必会先读取到CPU缓存中,然后在缓存中修改后写回到堆内存。如果多个线程同时操作,就会造成A、B线程同时读取一条数据,然后A、B都在各自CPU cache中进行了修改,写回堆...原创 2020-02-29 01:58:16 · 161 阅读 · 0 评论