1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-08-01 16:28:03 +08:00

[docs fix]对 CPU 缓存模型绘图不严谨的地方进行完善

This commit is contained in:
guide 2022-10-23 20:26:02 +08:00
parent d2a5472d93
commit c5766c7b51
6 changed files with 10 additions and 4 deletions

View File

@ -311,7 +311,7 @@ _为什么会出现误判的情况呢? 我们还要从布隆过滤器的原理
举个例子:系统的缓存模块出了问题比如宕机导致不可用。造成系统的所有访问,都要走数据库。
还有一种缓存雪崩的场景是:**有一些被大量访问数据(热点缓存)在某一时刻大面积失效,导致对应的请求直接落到了数据库上。** 这样的情况,有下面几种解决办法:
还有一种缓存雪崩的场景是:**有一些被大量访问数据(热点缓存)在某一时刻大面积失效,导致对应的请求直接落到了数据库上。**
举个例子 :秒杀开始 12 个小时之前,我们统一存放了一批商品到 Redis 中,设置的缓存过期时间也是 12 个小时,那么秒杀开始的时候,这些秒杀的商品的访问直接就失效了。导致的情况就是,相应的请求直接就落到了数据库上,就像雪崩一样可怕。

View File

@ -0,0 +1 @@
<mxfile host="Electron" modified="2022-10-23T12:19:29.680Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.3.0 Chrome/104.0.5112.114 Electron/20.1.3 Safari/537.36" etag="5k-7qvnlFM0pCYN7Hhsa" version="20.3.0" type="device"><diagram id="O1q-3gN19tnn94MyZq-a" name="Page-1">7VrbcqM4EP0aPSaFwNwejY1nZzbeSm1qazaPCsiYBCOPkG/79SuBMBfhlF02sSuZSipGrdaFc7pb6o6BMVpsv1G0nE9JiBOga+EWGGOg61DTXf4hJLtC4mpGIYhoHEqlSvAU/4fLkVK6ikOcNRQZIQmLl01hQNIUB6whQ5SSTVNtRpLmqksUYUXwFKBElf6MQzYvpI5uV/I/cBzNy5WhJV/4BQVvESWrVK4HdGNiTSYTp+heoHIu+aLZHIVkUxMZPjBGlBBWPC22I5wIbEvYinGTA737fVOcsmMG/PqBybMWhRBP4z+f/b9G9qt1J2fJ2K7EA4ccHtkklM1JRFKU+JXUC1Z0jcWkkDdyAPKWxlvVgAdCllLlFTO2k8SjFSNcNGeLRPZmjJK3PfQcFW9GUibVoZVrIMqGgmouCRKUZXFQiidxUk7EYaC7f8VG7qFTtp/lxvLGeNto7eqtR0zjBWaYSmGBiwDjINwldmRFA/wOxrq0akQjzN7Rs/ZGwZ0NE74buuPjKE4Qi9fNfSBp9dFebz/0kcR8h7omPVQ3pP1J/xw4WnOKYl9yVGU//KG2jUqUW9UJFibffo2SFS4dpWVylQ0JHjfzmOGnJcox3fCg07SXunWYos0tYEQSQvO5jJkT4CDY21XZk5JUmG72hlkwlxTvHbLie40pw9v3GVcZkgOcJtDQku1NFVYMTcrmtZCiW9phUht0nIq9oWA/evyHC/7GUZxxW8/OpKIJPYahie2joG+TeGkqoKHfmw029m5QYwO6psqG2RcZg24yWgTwd2ZdAbKFZh16KUJJHKUiQnKMRBjzBIIxP+iGsmMRh2EewLtobcZxJQQf9JtcU24fXoK5thc5Hbx1eZHRF2/m1Y/I2slmnnKwXexoveBhaB15GDqXOAz5m6FdTWEpDrns8FlpuE3jM+3Wleo0ff5Q7OCiB6qlxJEHHue1EQrm+KLxPETYmQUnhe7OWHWJqDBoXWJcNSqYXVGht2hu/44KF4wKzpFRAWrdZnJ0WDiLc0fxPG+VAd8C/IzyPODbwBsCbwL8CfBGwHFyyQi4BvBNMBwDl0sGwHOEvs//8t6BHD60hY4zBs5EdA198StG8V6x5vTpO/ANoenAqS8axRrueR5/vGe3r9kzbB2+Zvfg8ZZ2pMfbfXm8q7CfU8Y5GuW0cqILEjkztuTHHf5Aa/RNlDiAbiXiZvdCG3xZv1aiAJCDf5fl6A+5AjSX2xzIsp8/RfmnsCluSlA8DD3guvulXvlSeTXlPkhv9F6ZoBecePvCSXvxdmrH2zWb8/KffE7GvZ2kZUDrM6mDevuIN9X7qNNhh7AvOywnrhniFMWpCBJ4QeQCXyAi2Pq1IwKEChMPXKSN7/q8jN1ict1xHXPt+4/MrqFaZ8q5+N4DF7PZTD+yxtQ3F3rLKW6BCbXq9KD3k6CY2AkHN8GD6hNGR/nvYwtOcKCg/RmK+45xSrbTd3EfSkZ7r+6fZwqmenk9zxNvtgo/0Jp+eANleKiWbL5IHX5g2jdXh4d2Nxs3mTBdrxBvtv3o6oV4qNZffmfgnz8Dt1oZ+KDrYvWxGbhaCvoKeV9HML9+tqGr1ZCvkPeZ1u0x0VEN+fR5n+oTfeZ9vFl9X6z4f2L1pTzD/x8=</diagram></mxfile>

View File

@ -0,0 +1 @@
<mxfile host="Electron" modified="2022-10-23T12:05:01.380Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.3.0 Chrome/104.0.5112.114 Electron/20.1.3 Safari/537.36" etag="mnTuYUwTyg_MAY236IGW" version="20.3.0" type="device"><diagram id="O1q-3gN19tnn94MyZq-a" name="Page-1">7Vpbc5s4FP41PDrDxdwejWOaZuJpum4nu/umgIxpMHKFfMuvXwHiKrljD5C42Y4fjI6ufN+56Bxb0qbrwycMNqs58mEkqbJ/kLRbSVUVWbXpVyo55hJb1nJBgEOfDaoEi/AVFjOZdBv6MGkMJAhFJNw0hR6KY+iRhgxgjPbNYUsUNXfdgABygoUHIl76FPpklUst1azkdzAMVsXOisFe+Bl4LwFG25jtJ6maa7iua+Xda1CsxV40WQEf7WsibSZpU4wQyZ/WhymMUmwL2PJ57one8twYxuScCcZiPvmue3LyWX3Yz5/uCQSvI8VghyPHAhDoU3xYE2GyQgGKQTSrpI63xTuYrqrQRoZA1pJpq5rwgNCGDfkBCTky5sGWICpakXXEehOC0UuJPYXFWaKYsOH0fOkIgMkk5ZpKvAgkSegVYjeMioUoDvj4d3qQG8Uq2v+wg2WN20Ojday3HiEO15BAzIQ5LikYJ/FmogRtscdGfXtdzP07tL/zfi6++A/Jk35vjVSm1gAHkPxqnFaqBTU3iOhx8JFOxDACJNw1DwKY3gfluHLqIwrpEVWZ2aiqMQ1kFjq25OYS+cHYrEqD6EPtGJUo0yuxjv3q9Xcg2sLCVFo6VylRSuR+FRK42IAM1D11O02FqauHnrapCkxRhHC2lra0POh5pWIVPTGKU91NXiDxVozj0iQrwgX87iAm8FAT8QyxXqsJtGKw9r5yLJrMZKuaU1EN+TSpDTouxV7jsJ8+fqeCv2AQJlTZk45UNKGHiq9D8yzo2yT2TYWiqTd6g43SDGpsKLbOs6EPRYZii9loMUDfkIhcZAvOOvZMBKIwiFMfSXFLHZmT4hXSWDdhHevQ9zMXLuK16ck5J3zScLKR7PinveQF1LXNyBIQJzIjrQfixFHSfPcoWQtu+iWxrbfo2mc81M4NiGYfAZG+GzjWBmzSQJecjpea3dQ/3WxdrC4bTx/yE/QbVHnP/kBF8hR4K9irU/cBtJbeRf5b6K/68Azj1k3G5j2DLvIMfbh0sWcY//EMfXoGk/cMQtzVjo6hUxwvTlmzPWebSDNDopHKcaSZKTkTyXG7meH55ta+AC+hcfoCPIAZGvKZZmj2YIbWXHX2o29kM3GWDvz67yR0HVGKMdMlS5cmU2k2lpypZJuZxJUc+uBmksk92IFPaflBUo0ovXI94wZfxs9tmpxn4I+SDP0JHaDom0MGZNFPn4LsOyX+VrKV9GHiSLZdbvWDbpVVOm68+EovfBF4hpFTFjXam7eTLtqu6ZyTfbI1CbVAFBdOZsh0S1HbgVfnL4qWQA+VocIBr4dzEFLC5TlcI7b+dToEDnUBN2c7BFN9Q4cgJEJwO6KvIN+Ohrwf9ZH0duOBT3oFNyTbvBko6xVSMRZT8XkAKpbLpXpm6WdoKtSWSVwBETpPhDpMxqBDyx9fBQ28RWiCotxgZSBxzqBzaH+EmrulXZJ99FhzF4LMftcYvubeSRUM/t7azRCHLI13MsSx3DTDt62NC8Hns7jfpzbejQvdfM/auJAMS0zGVWZKnUrjnZjT21b07qVx/ieNP5n3b5F5d9JDo5V5j0WXqjfNvIuF/2cZn8CVv3+ioShiLj54yqcb18cEX5D6+DkfbxND5ny0Wf2HK/91r/qjnDb7Dw==</diagram></mxfile>

View File

@ -1 +1 @@
<mxfile host="Electron" modified="2022-08-21T09:00:20.265Z" agent="5.0 (Macintosh; Intel Mac OS X 10_16_0) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/13.4.5 Chrome/83.0.4103.122 Electron/9.1.0 Safari/537.36" etag="pFr7vcxgC7W6okT_95qM" version="13.4.5" type="device"><diagram id="O1q-3gN19tnn94MyZq-a" name="Page-1">7Vltc+I2EP41/hjGb5Ltj0BMbtpkLtNMp82njrCF0cVYnBAB+usr2TK2ZUM4DifcXSdM8K7WEtpnd7WPbTjjxfaOoeX8gcY4NWwz3hrOrWHblmVC8SU1u0ITBF6hSBiJlVGleCL/YqU0lXZNYrxqGHJKU06WTWVEswxHvKFDjNFN02xG0+aqS5TgluIpQmlb+xeJ+bzQ+rZX6T9hkszLlS0YFCMLVBqrnazmKKabmsoJDWfMKOXF1WI7xql0XumX4r7JgdH9D2M446fcMAVff/88fP6HgfsweHkOyH32+UbN8orStdqw+rF8V3qA0XUWYzmJZTijzZxw/LREkRzdCMyFbs4XqRqe0YwrEC0oZZKmY5pSls/lzPwIR5HQrzijL7g2MvWBC0w58oJ5JD2XC6XPpNDecPnrMeN4W1MpB9xhusCc7YSJGgWmAkNFo+MqeVNha5c28zqupSFS8ZTs565cLi6U178BAbuFwPjxT6H4AydkxTFbfScgTQCwFQPsdQEQQM9BUAdAx/PigNgaIEEbEAt2AOL1hYfTjYeGgdgebzq66dCMZljzvlKhlCSZECPhNCz0I+ksIgrOUA0sSBzLZTqRrbDvRKfX3AEaVKADqq7ccfqCym3BgmNRvJVIGZ/ThGYoDSut5sDK5p7SpULyC+Z8p9yK1pw2cRYOZLu/5f0DG5Tys5ovF263DWlX4sER40N5JEn0U7RakahUT0i6j6Nj6XcQxhVdswgf8RVQZydiCeZH7NS5Jh15NCgYThEnr81T8uIIgwPFcYyiOf6+wtgqgDDy8XTWLpkxwv4sevfCaDWzDXScVJbXkW2gr2yDb7cKOIsPBHhbfaRpwFvCiwwDdqDkPMMGplnKVZJJYVcTHjEjYseytrbrYC17G8lrvZW8dez7z0LrxCysBQM4EgsnJ6ta4ZESsbMqFn0tFvUYK/at7qq3oNpE0PQaE7kANCcqHNOaKI/X/bbPD2GvHcKhZ4zGRuAYITCGt0bgG6FrjHxDbDkU/8Woa4RQikNP2vi3hj+RQ8NQfi5bgmI4heDbejC9wZ7N7LzB7qEEwY4DH3Qd+L31Zn4HfgISgdw4h00AWYA0MUbiYpJrhr+hV3QnaaRhw1R2bVPWAA1+XUsOlvv5ZpU7eigMLLjc5o4sx8VVkn/LmBGhYsmL4cgIgv1SX8RSOWMdRNmV9owpmuJ0hKKXJNfri+v8Tci18Brlf/mcXFQUKte+cXqnbRBqBcjqOAz9LtrWVyQGbx+GPxNv9m3QAOAKeHMJ7S9KnH1XQ+TDibPVfpb0P3MusPI0rD6cOVsdvfu7UmfvB6LOlnok9INxZ+vAk6xfgDz77rWRZ8t9u2G4fvZ8Ggu+EtYa2O4A6GEwcDXGeSp1DbQOyPW1UOmZulrtxy8PiAiSYT7gBVURen4+n883MexuTGMvmJo9PQzz/I9mona7+7xUPp/7iKqW9/WsP5rxfZ2Y8MIn5vtUDE97w+EFWvicWix87TWjp7Ogs4uFEKs3xoV59d7dCf8D</diagram></mxfile>
<mxfile host="Electron" modified="2022-10-23T12:19:29.818Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.3.0 Chrome/104.0.5112.114 Electron/20.1.3 Safari/537.36" etag="tIu7qzNIn8AvCI8hyjhY" version="20.3.0" type="device"><diagram id="O1q-3gN19tnn94MyZq-a" name="Page-1">7VrbcqM4EP0aPSaFwNwejY1nZzbeSm1qazaPCsiYBCOPkG/79SuBMBfhlF02sSuZSipGrdaFc7pb6o6BMVpsv1G0nE9JiBOga+EWGGOg61DTXf4hJLtC4mpGIYhoHEqlSvAU/4fLkVK6ikOcNRQZIQmLl01hQNIUB6whQ5SSTVNtRpLmqksUYUXwFKBElf6MQzYvpI5uV/I/cBzNy5WhJV/4BQVvESWrVK4HdGNiTSYTp+heoHIu+aLZHIVkUxMZPjBGlBBWPC22I5wIbEvYinGTA737fVOcsmMG/PqBybMWhRBP4z+f/b9G9qt1J2fJ2K7EA4ccHtkklM1JRFKU+JXUC1Z0jcWkkDdyAPKWxlvVgAdCllLlFTO2k8SjFSNcNGeLRPZmjJK3PfQcFW9GUibVoZVrIMqGgmouCRKUZXFQiidxUk7EYaC7f8VG7qFTtp/lxvLGeNto7eqtR0zjBWaYSmGBiwDjINwldmRFA/wOxrq0akQjzN7Rs/ZGwZ0NE74buuPjKE4Qi9fNfSBp9dFebz/0kcR8h7omPVQ3pP1J/xw4WnOKYl9yVGU//KG2jUqUW9UJFibffo2SFS4dpWVylQ0JHjfzmOGnJcox3fCg07SXunWYos0tYEQSQvO5jJkT4CDY21XZk5JUmG72hlkwlxTvHbLie40pw9v3GVcZkgOcJtDQku1NFVYMTcrmtZCiW9phUht0nIq9oWA/evyHC/7GUZxxW8/OpKIJPYahie2joG+TeGkqoKHfmw029m5QYwO6psqG2RcZg24yWgTwd2ZdAbKFZh16KUJJHKUiQnKMRBjzBIIxP+iGsmMRh2EewLtobcZxJQQf9JtcU24fXoK5thc5Hbx1eZHRF2/m1Y/I2slmnnKwXexoveBhaB15GDqXOAz5m6FdTWEpDrns8FlpuE3jM+3Wleo0ff5Q7OCiB6qlxJEHHue1EQrm+KLxPETYmQUnhe7OWHWJqDBoXWJcNSqYXVGht2hu/44KF4wKzpFRAWrdZnJ0WDiLc0fxPG+VAd8C/IzyPODbwBsCbwL8CfBGwHFyyQi4BvBNMBwDl0sGwHOEvs//8t6BHD60hY4zBs5EdA198StG8V6x5vTpO/ANoenAqS8axRrueR5/vGe3r9kzbB2+Zvfg8ZZ2pMfbfXm8q7CfU8Y5GuW0cqILEjkztuTHHf5Aa/RNlDiAbiXiZvdCG3xZv1aiAJCDf5fl6A+5AjSX2xzIsp8/RfmnsCluSlA8DD3guvulXvlSeTXlPkhv9F6ZoBecePvCSXvxdmrH2zWb8/KffE7GvZ2kZUDrM6mDevuIN9X7qNNhh7AvOywnrhniFMWpCBJ4QeQCXyAi2Pq1IwKEChMPXKSN7/q8jN1ict1xHXPt+4/MrqFaZ8q5+N4DF7PZTD+yxtQ3F3rLKW6BCbXq9KD3k6CY2AkHN8GD6hNGR/nvYwtOcKCg/RmK+45xSrbTd3EfSkZ7r+6fZwqmenk9zxNvtgo/0Jp+eANleKiWbL5IHX5g2jdXh4d2Nxs3mTBdrxBvtv3o6oV4qNZffmfgnz8Dt1oZ+KDrYvWxGbhaCvoKeV9HML9+tqGr1ZCvkPeZ1u0x0VEN+fR5n+oTfeZ9vFl9X6z4f2L1pTzD/x8=</diagram></mxfile>

View File

@ -1 +1 @@
<mxfile host="Electron" modified="2022-08-21T09:01:27.046Z" agent="5.0 (Macintosh; Intel Mac OS X 10_16_0) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/13.4.5 Chrome/83.0.4103.122 Electron/9.1.0 Safari/537.36" etag="CxKqIbLw8u2618DuZFpH" version="13.4.5" type="device"><diagram id="O1q-3gN19tnn94MyZq-a" name="Page-1">5VnbcuI4EP0aP0L5Jl8eMYGkpobd7CZbszsvW8IWtibCYmwRIF+/ki3jm2CYCTDUbPKA+0iWUJ/uVp9Cs8bL7X0GV8mMRohoph5tNetOM03D0B3+IZBdifi+WwJxhiM5qQae8BuSoC7RNY5Q3prIKCUMr9pgSNMUhayFwSyjm/a0BSXtXVcwRj3gKYSkj37CEUtK1DPdGn9AOE6qnQ3HL0eWsJosT5InMKKbBmRNNGucUcrKp+V2jIhwXuWX8r3pgdH9F8tQyk554fntaRY90M1D+PXp9+hj/gl88AZmucorJGt5YPll2a7yQEbXaYTEIoZmBZsEM/S0gqEY3XDOOZawJZHDC5oySaLhCBsTMqaEZsVa1sILURhyPGcZfUGNkbkHbKCLkRfEQuG5wqh8Joz+gaUPXlHG0LYBSQfcI7pELNvxKdWoJcmQ0Wj60t7U3Jq6xJImr7YEoYyneL927XL+IL3+HQxYPQbGj39x4E8U45yhLH8nIW0CkBEB5KoI8B3Xgk6XgC6fZycEtAmx7D4hhqMgxL0UH4avJqRDAj8fa3u67dGUpqjjfglBguOUmyH3GuJ4ILyFecUZyYEljiKxjZLamnwlPRdNHq/Dla7gSpU81hm4ehuQgRE/zpdvSRg9//v8G/3sDpweLSji1VuaNGMJjWkKyaRGOw6s53ykdCWZ/IIY20m3wjWjbZ65A7Pd3+L9oQkq+x+5XmHcbVvWruKDwYyNxJ0k2Ccwz3FYwVNM9nF0LP8O0pjTdRaiY5VeFhq+W4zYsYnyahOuPBoWGSKQ4df2RXn2fDQPFcgxDBN01uIYQeQtwu8qgb0y6oQemi/OlHB2O+FsxW1luIqEA5cqjjzgv9kvoDQ6EOR9+EjngLaYlVkGTF/aRZYNdb2y60QTxq5hPKIM8yOL+tqvhY0MbiWw8a0EbobFNTLxxERshAM4Eg0n56vc4ZFifrR9NO5b8l21bCfKyoPLt5qNaHchy22HtQ7aC5WO6S1UROz+2O8IYrcXxDOIU47M0JLKLPnhmnJ67ej2xgvkqHvjyPXn+rku8U5NcRSXOFBd4udouLyZGWwGz2w1ChYB+uPzCE8DlQSZAM0D2misTWwtGGtcMgpkqgX8YVogow/wFd4LbaiZDhGd2DxrkeZ8XQthVTAwyAsKRnyC4ay2hSOrcf4UF58TVwvuNN8QD6NA8/39Vl/4VoUMHYbpjfaBBM4RCWD4Ehd4d/OuKON2I7yC4r9Yk/ECQVNVuTt3M7lXXlURcBR3m6dSYpdqJo1+HP7KUtgGoEXAdaWwkoF+Jfg/SWHbbRNyVSms5ONA532TFfCqShjoHap+uhJ2e7RcVwm7t6mElb6ytVsXwse+9iV08GEV+36FfJbK+BN1sJKLX0IGnyZnb0R9AmAPQTcKhrxPqv86KvJUOQo6jZDdLdI/LEe5Wf+8U06vfySzJv8B</diagram></mxfile>
<mxfile host="Electron" modified="2022-10-23T12:05:01.530Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.3.0 Chrome/104.0.5112.114 Electron/20.1.3 Safari/537.36" etag="PIdPLdXK_F4iBDR_UKW4" version="20.3.0" type="device"><diagram id="O1q-3gN19tnn94MyZq-a" name="Page-1">7Vpbc5s4FP41PDrDxdwejWOaZuJpum4nu/umgIxpMHKFfMuvXwHiKrljD5C42Y4fjI6ufN+56Bxb0qbrwycMNqs58mEkqbJ/kLRbSVUVWbXpVyo55hJb1nJBgEOfDaoEi/AVFjOZdBv6MGkMJAhFJNw0hR6KY+iRhgxgjPbNYUsUNXfdgABygoUHIl76FPpklUst1azkdzAMVsXOisFe+Bl4LwFG25jtJ6maa7iua+Xda1CsxV40WQEf7WsibSZpU4wQyZ/WhymMUmwL2PJ57one8twYxuScCcZiPvmue3LyWX3Yz5/uCQSvI8VghyPHAhDoU3xYE2GyQgGKQTSrpI63xTuYrqrQRoZA1pJpq5rwgNCGDfkBCTky5sGWICpakXXEehOC0UuJPYXFWaKYsOH0fOkIgMkk5ZpKvAgkSegVYjeMioUoDvj4d3qQG8Uq2v+wg2WN20Ojday3HiEO15BAzIQ5LikYJ/FmogRtscdGfXtdzP07tL/zfi6++A/Jk35vjVSm1gAHkPxqnFaqBTU3iOhx8JFOxDACJNw1DwKY3gfluHLqIwrpEVWZ2aiqMQ1kFjq25OYS+cHYrEqD6EPtGJUo0yuxjv3q9Xcg2sLCVFo6VylRSuR+FRK42IAM1D11O02FqauHnrapCkxRhHC2lra0POh5pWIVPTGKU91NXiDxVozj0iQrwgX87iAm8FAT8QyxXqsJtGKw9r5yLJrMZKuaU1EN+TSpDTouxV7jsJ8+fqeCv2AQJlTZk45UNKGHiq9D8yzo2yT2TYWiqTd6g43SDGpsKLbOs6EPRYZii9loMUDfkIhcZAvOOvZMBKIwiFMfSXFLHZmT4hXSWDdhHevQ9zMXLuK16ck5J3zScLKR7PinveQF1LXNyBIQJzIjrQfixFHSfPcoWQtu+iWxrbfo2mc81M4NiGYfAZG+GzjWBmzSQJecjpea3dQ/3WxdrC4bTx/yE/QbVHnP/kBF8hR4K9irU/cBtJbeRf5b6K/68Azj1k3G5j2DLvIMfbh0sWcY//EMfXoGk/cMQtzVjo6hUxwvTlmzPWebSDNDopHKcaSZKTkTyXG7meH55ta+AC+hcfoCPIAZGvKZZmj2YIbWXHX2o29kM3GWDvz67yR0HVGKMdMlS5cmU2k2lpypZJuZxJUc+uBmksk92IFPaflBUo0ovXI94wZfxs9tmpxn4I+SDP0JHaDom0MGZNFPn4LsOyX+VrKV9GHiSLZdbvWDbpVVOm68+EovfBF4hpFTFjXam7eTLtqu6ZyTfbI1CbVAFBdOZsh0S1HbgVfnL4qWQA+VocIBr4dzEFLC5TlcI7b+dToEDnUBN2c7BFN9Q4cgJEJwO6KvIN+Ohrwf9ZH0duOBT3oFNyTbvBko6xVSMRZT8XkAKpbLpXpm6WdoKtSWSVwBETpPhDpMxqBDyx9fBQ28RWiCotxgZSBxzqBzaH+EmrulXZJ99FhzF4LMftcYvubeSRUM/t7azRCHLI13MsSx3DTDt62NC8Hns7jfpzbejQvdfM/auJAMS0zGVWZKnUrjnZjT21b07qVx/ieNP5n3b5F5d9JDo5V5j0WXqjfNvIuF/2cZn8CVv3+ioShiLj54yqcb18cEX5D6+DkfbxND5ny0Wf2HK/91r/qjnDb7Dw==</diagram></mxfile>

View File

@ -22,10 +22,14 @@ head:
总结:**CPU Cache 缓存的是内存数据用于解决 CPU 处理速度和内存不匹配的问题,内存缓存的是硬盘数据用于解决硬盘访问速度过慢的问题。**
为了更好地理解,我画了一个简单的 CPU Cache 示意图如下(实际上,现代的 CPU Cache 通常分为三层,分别叫 L1,L2,L3 Cache:
为了更好地理解,我画了一个简单的 CPU Cache 示意图如下所示。
> **🐛 修正(参见: [issue#1848](https://github.com/Snailclimb/JavaGuide/issues/1848)**:对 CPU 缓存模型绘图不严谨的地方进行完善。
![CPU 缓存模型示意图](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/github/javaguide/java/concurrent/cpu-cache.png)
现代的 CPU Cache 通常分为三层,分别叫 L1,L2,L3 Cache。有些 CPU 可能还有 L4 Cache这里不做讨论并不常见
**CPU Cache 的工作方式:** 先复制一份数据到 CPU Cache 中,当 CPU 需要用到的时候就可以直接从 CPU Cache 中读取数据,当运算完成后,再将运算得到的数据写回 Main Memory 中。但是,这样存在 **内存缓存不一致性的问题** !比如我执行一个 i++ 操作的话,如果两个线程同时执行的话,假设两个线程从 CPU Cache 中读取的 i=1两个线程做了 1++ 运算完之后再写回 Main Memory 之后 i=2而正确结果应该是 i=3。
**CPU 为了解决内存缓存不一致性问题可以通过制定缓存一致协议(比如 [MESI 协议](https://zh.wikipedia.org/wiki/MESI%E5%8D%8F%E8%AE%AE))或者其他手段来解决。** 这个缓存一致性协议指的是在 CPU 高速缓存与主内存交互的时候需要遵守的原则和规范。不同的 CPU 中,使用的缓存一致性协议通常也会有所不同。