提交 5cb202d4 编写于 作者: 沉默王二's avatar 沉默王二 💬

2022年06月11日

上级 2cb1f20b
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
import{_ as s}from"./plugin-vue_export-helper.21dcd24c.js";import{r as t,o as i,c as o,a as e,b as c,e as p,d as n}from"./app.a0271b9c.js";const d={},l=p(`<h1 id="_4\u4E2A\u9AD8\u7EA7\u7684intellij-idea\u8C03\u8BD5\u6280\u5DE7" tabindex="-1"><a class="header-anchor" href="#_4\u4E2A\u9AD8\u7EA7\u7684intellij-idea\u8C03\u8BD5\u6280\u5DE7" aria-hidden="true">#</a> 4\u4E2A\u9AD8\u7EA7\u7684IntelliJ IDEA\u8C03\u8BD5\u6280\u5DE7</h1><p>\u5927\u5BB6\u597D\uFF0C\u6211\u662F\u4E8C\u54E5\uFF01</p><p>\u4ECA\u5929\u7ED9\u5927\u5BB6\u5E26\u6765\u51E0\u4E2A\u6211\u65E5\u5E38\u5DE5\u4F5C\u4EE5\u53CA\u9605\u8BFB\u6E90\u7801\u5FC5\u5907\u7684 IntelliJ IDEA \u9AD8\u7EA7\u8C03\u8BD5\u6280\u5DE7\uFF0C\u5206\u5206\u949F\u8981\u8D77\u98DE\u7684\u8282\u594F\u3002</p><h2 id="\u65AD\u70B9\u5904\u6DFB\u52A0-log" tabindex="-1"><a class="header-anchor" href="#\u65AD\u70B9\u5904\u6DFB\u52A0-log" aria-hidden="true">#</a> \u65AD\u70B9\u5904\u6DFB\u52A0 log</h2><p>\u5F88\u591A\u7A0B\u5E8F\u5458\u5728\u8C03\u8BD5\u4EE3\u7801\u65F6\u90FD\u559C\u6B22\xA0<code>print</code>\xA0\u4E00\u4E9B\u5185\u5BB9\uFF0C\u8FD9\u6837\u770B\u8D77\u6765\u66F4\u76F4\u89C2\uFF0Cprint \u5B8C\u4E4B\u540E\u53C8\u5F88\u5BB9\u6613\u5FD8\u8BB0\u5220\u9664\u6389\u8FD9\u4E9B\u6CA1\u7528\u7684\u5185\u5BB9\uFF0C\u6700\u7EC8\u5C06\u4EE3\u7801\u63D0\u4EA4\u5230\xA0<code>remote</code>\uFF0Ccode review \u65F6\u53C8\u4E0D\u5F97\u4E0D\u5220\u51CF\u8FD9\u4E9B\u5185\u5BB9\u91CD\u65B0\u63D0\u4EA4\uFF0C\u4E0D\u4F46\u589E\u52A0\u4E0D\u5FC5\u8981\u7684\u5DE5\u4F5C\u91CF\uFF0C\u8FD8\u8BA9\xA0<code>log tree</code>\xA0\u7684\u4E00\u4E9B\u8282\u70B9\u6CA1\u6709\u4EFB\u4F55\u4EF7\u503C</p><p>IntelliJ IDEA \u63D0\u4F9B\xA0<code>Evaluate and Log at Breakpoints</code>\xA0\u529F\u80FD\u6070\u5DE7\u53EF\u4EE5\u5E2E\u52A9\u6211\u4EEC\u89E3\u51B3\u8FD9\u4E2A\u95EE\u9898, \u6765\u770B\u4E0B\u9762\u4EE3\u7801\uFF1A</p><div class="language-java ext-java line-numbers-mode"><pre class="language-java"><code><span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">void</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token class-name">String</span><span class="token punctuation">[</span><span class="token punctuation">]</span> args<span class="token punctuation">)</span> <span class="token punctuation">{</span>
import{_ as s}from"./plugin-vue_export-helper.21dcd24c.js";import{r as t,o as i,c as o,a as e,b as c,e as p,d as n}from"./app.615e41d8.js";const d={},l=p(`<h1 id="_4\u4E2A\u9AD8\u7EA7\u7684intellij-idea\u8C03\u8BD5\u6280\u5DE7" tabindex="-1"><a class="header-anchor" href="#_4\u4E2A\u9AD8\u7EA7\u7684intellij-idea\u8C03\u8BD5\u6280\u5DE7" aria-hidden="true">#</a> 4\u4E2A\u9AD8\u7EA7\u7684IntelliJ IDEA\u8C03\u8BD5\u6280\u5DE7</h1><p>\u5927\u5BB6\u597D\uFF0C\u6211\u662F\u4E8C\u54E5\uFF01</p><p>\u4ECA\u5929\u7ED9\u5927\u5BB6\u5E26\u6765\u51E0\u4E2A\u6211\u65E5\u5E38\u5DE5\u4F5C\u4EE5\u53CA\u9605\u8BFB\u6E90\u7801\u5FC5\u5907\u7684 IntelliJ IDEA \u9AD8\u7EA7\u8C03\u8BD5\u6280\u5DE7\uFF0C\u5206\u5206\u949F\u8981\u8D77\u98DE\u7684\u8282\u594F\u3002</p><h2 id="\u65AD\u70B9\u5904\u6DFB\u52A0-log" tabindex="-1"><a class="header-anchor" href="#\u65AD\u70B9\u5904\u6DFB\u52A0-log" aria-hidden="true">#</a> \u65AD\u70B9\u5904\u6DFB\u52A0 log</h2><p>\u5F88\u591A\u7A0B\u5E8F\u5458\u5728\u8C03\u8BD5\u4EE3\u7801\u65F6\u90FD\u559C\u6B22\xA0<code>print</code>\xA0\u4E00\u4E9B\u5185\u5BB9\uFF0C\u8FD9\u6837\u770B\u8D77\u6765\u66F4\u76F4\u89C2\uFF0Cprint \u5B8C\u4E4B\u540E\u53C8\u5F88\u5BB9\u6613\u5FD8\u8BB0\u5220\u9664\u6389\u8FD9\u4E9B\u6CA1\u7528\u7684\u5185\u5BB9\uFF0C\u6700\u7EC8\u5C06\u4EE3\u7801\u63D0\u4EA4\u5230\xA0<code>remote</code>\uFF0Ccode review \u65F6\u53C8\u4E0D\u5F97\u4E0D\u5220\u51CF\u8FD9\u4E9B\u5185\u5BB9\u91CD\u65B0\u63D0\u4EA4\uFF0C\u4E0D\u4F46\u589E\u52A0\u4E0D\u5FC5\u8981\u7684\u5DE5\u4F5C\u91CF\uFF0C\u8FD8\u8BA9\xA0<code>log tree</code>\xA0\u7684\u4E00\u4E9B\u8282\u70B9\u6CA1\u6709\u4EFB\u4F55\u4EF7\u503C</p><p>IntelliJ IDEA \u63D0\u4F9B\xA0<code>Evaluate and Log at Breakpoints</code>\xA0\u529F\u80FD\u6070\u5DE7\u53EF\u4EE5\u5E2E\u52A9\u6211\u4EEC\u89E3\u51B3\u8FD9\u4E2A\u95EE\u9898, \u6765\u770B\u4E0B\u9762\u4EE3\u7801\uFF1A</p><div class="language-java ext-java line-numbers-mode"><pre class="language-java"><code><span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">void</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token class-name">String</span><span class="token punctuation">[</span><span class="token punctuation">]</span> args<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token class-name">ThreadLocalRandom</span> random <span class="token operator">=</span> <span class="token class-name">ThreadLocalRandom</span><span class="token punctuation">.</span><span class="token function">current</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">int</span> count <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">int</span> i <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> i <span class="token operator">&lt;</span> <span class="token number">5</span><span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
......
import{_ as e}from"./plugin-vue_export-helper.21dcd24c.js";import{o as i,c as n,e as a}from"./app.a0271b9c.js";const d={},s=a(`<h1 id="nginx-40\u9053\u7CBE\u9009\u9762\u8BD5\u9898\u5FC5\u770B" tabindex="-1"><a class="header-anchor" href="#nginx-40\u9053\u7CBE\u9009\u9762\u8BD5\u9898\u5FC5\u770B" aria-hidden="true">#</a> Nginx\uFF1A40\u9053\u7CBE\u9009\u9762\u8BD5\u9898\u5FC5\u770B\u{1F44D}</h1><p>\u5927\u5BB6\u597D\uFF0C\u6211\u662F\u4E8C\u54E5\u5440\uFF01\u90A3\u5929\uFF0C\u6211\u5F92\u5F1F\u5C0F\u4E8C\u5077\u5077\u6478\u6478\u8DD1\u53BB\u4E86\u4E00\u5BB6\u516C\u53F8\u9762\u8BD5\uFF0C\u7ED3\u679C\u56DE\u6765\u7ED9\u6211\u8BF4\u5728 Nginx \u4E0A\u8DEA\u4E86\uFF0C\u95EE\u6211\u8BE5\u600E\u4E48\u529E\uFF1F</p><p>\u6211\u5148\u662F\u6BEB\u4E0D\u7559\u60C5\u5730\u6279\u8BC4\u4E86\u4ED6\uFF0C\u600E\u4E48\u80FD\u80CC\u7740\u9886\u5BFC\u53BB\u9762\u8BD5\u5462\uFF1F\u4E0D\u8FC7\uFF0C\u770B\u7740\u5C0F\u4E8C\u96BE\u8FC7\u7684\u8868\u60C5\uFF0C\u6211\u8FD8\u662F\u4E8E\u5FC3\u4E0D\u5FCD\uFF0C\u4E8E\u662F\u7ED9\u4ED6\u6574\u7406\u4E86 40 \u9053 Nginx \u7684\u9762\u8BD5\u9898\uFF0C\u5E0C\u671B\u80FD\u5E2E\u4ED6\u4E00\u628A\u3002</p><ul><li>\u4EC0\u4E48\u662FNginx\uFF1F</li><li>Nginx \u6709\u54EA\u4E9B\u4F18\u70B9\uFF1F</li><li>Nginx\u5E94\u7528\u573A\u666F\uFF1F</li><li>Nginx\u600E\u4E48\u5904\u7406\u8BF7\u6C42\u7684\uFF1F</li><li>Nginx \u662F\u5982\u4F55\u5B9E\u73B0\u9AD8\u5E76\u53D1\u7684\uFF1F</li><li>\u4EC0\u4E48\u662F\u6B63\u5411\u4EE3\u7406\uFF1F</li><li>\u4EC0\u4E48\u662F\u53CD\u5411\u4EE3\u7406\uFF1F</li><li>\u53CD\u5411\u4EE3\u7406\u670D\u52A1\u5668\u7684\u4F18\u70B9\u662F\u4EC0\u4E48?</li><li>Nginx\u76EE\u5F55\u7ED3\u6784\u6709\u54EA\u4E9B\uFF1F</li><li>Nginx\u914D\u7F6E\u6587\u4EF6nginx.conf\u6709\u54EA\u4E9B\u5C5E\u6027\u6A21\u5757?</li><li>cookie\u548Csession\u533A\u522B\uFF1F</li><li>\u4E3A\u4EC0\u4E48 Nginx \u4E0D\u4F7F\u7528\u591A\u7EBF\u7A0B\uFF1F</li><li>nginx\u548Capache\u7684\u533A\u522B</li><li>\u4EC0\u4E48\u662F\u52A8\u6001\u8D44\u6E90\u3001\u9759\u6001\u8D44\u6E90\u5206\u79BB\uFF1F</li><li>\u4E3A\u4EC0\u4E48\u8981\u505A\u52A8\u3001\u9759\u5206\u79BB\uFF1F</li><li>\u4EC0\u4E48\u53EB CDN \u670D\u52A1\uFF1F</li><li>Nginx\u600E\u4E48\u505A\u7684\u52A8\u9759\u5206\u79BB\uFF1F</li><li>Nginx\u8D1F\u8F7D\u5747\u8861\u7684\u7B97\u6CD5\u600E\u4E48\u5B9E\u73B0\u7684?\u7B56\u7565\u6709\u54EA\u4E9B?</li><li>\u5982\u4F55\u7528Nginx\u89E3\u51B3\u524D\u7AEF\u8DE8\u57DF\u95EE\u9898\uFF1F</li><li>Nginx\u865A\u62DF\u4E3B\u673A\u600E\u4E48\u914D\u7F6E?</li><li>location\u7684\u4F5C\u7528\u662F\u4EC0\u4E48\uFF1F</li><li>\u9650\u6D41\u600E\u4E48\u505A\u7684\uFF1F</li><li>\u6F0F\u6876\u6D41\u7B97\u6CD5\u548C\u4EE4\u724C\u6876\u7B97\u6CD5\u77E5\u9053\uFF1F</li><li>Nginx\u914D\u7F6E\u9AD8\u53EF\u7528\u6027\u600E\u4E48\u914D\u7F6E\uFF1F</li><li>Nginx\u600E\u4E48\u5224\u65AD\u522BIP\u4E0D\u53EF\u8BBF\u95EE\uFF1F</li><li>\u5728nginx\u4E2D\uFF0C\u5982\u4F55\u4F7F\u7528\u672A\u5B9A\u4E49\u7684\u670D\u52A1\u5668\u540D\u79F0\u6765\u963B\u6B62\u5904\u7406\u8BF7\u6C42\uFF1F</li><li>\u600E\u4E48\u9650\u5236\u6D4F\u89C8\u5668\u8BBF\u95EE\uFF1F</li><li>Rewrite\u5168\u5C40\u53D8\u91CF\u662F\u4EC0\u4E48\uFF1F</li><li>Nginx \u5982\u4F55\u5B9E\u73B0\u540E\u7AEF\u670D\u52A1\u7684\u5065\u5EB7\u68C0\u67E5\uFF1F</li><li>Nginx \u5982\u4F55\u5F00\u542F\u538B\u7F29\uFF1F</li><li>ngx_http_upstream_module\u7684\u4F5C\u7528\u662F\u4EC0\u4E48?</li><li>\u4EC0\u4E48\u662FC10K\u95EE\u9898?</li><li>Nginx\u662F\u5426\u652F\u6301\u5C06\u8BF7\u6C42\u538B\u7F29\u5230\u4E0A\u6E38?</li><li>\u5982\u4F55\u5728Nginx\u4E2D\u83B7\u5F97\u5F53\u524D\u7684\u65F6\u95F4?</li><li>\u7528Nginx\u670D\u52A1\u5668\u89E3\u91CA-s\u7684\u76EE\u7684\u662F\u4EC0\u4E48?</li><li>\u5982\u4F55\u5728Nginx\u670D\u52A1\u5668\u4E0A\u6DFB\u52A0\u6A21\u5757?</li><li>\u751F\u4EA7\u4E2D\u5982\u4F55\u8BBE\u7F6Eworker\u8FDB\u7A0B\u7684\u6570\u91CF\u5462\uFF1F</li><li>nginx\u72B6\u6001\u7801</li></ul><p><img src="http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/nginx/40-interview-63553177-7359-4f68-8673-5b44285cb701.png" alt=""></p><hr><h2 id="\u4EC0\u4E48\u662Fnginx" tabindex="-1"><a class="header-anchor" href="#\u4EC0\u4E48\u662Fnginx" aria-hidden="true">#</a> \u4EC0\u4E48\u662FNginx\uFF1F</h2><p>Nginx\u662F\u4E00\u4E2A \u8F7B\u91CF\u7EA7/\u9AD8\u6027\u80FD\u7684\u53CD\u5411\u4EE3\u7406Web\u670D\u52A1\u5668\uFF0C\u7528\u4E8E HTTP\u3001HTTPS\u3001SMTP\u3001POP3 \u548C IMAP \u534F\u8BAE\u3002\u4ED6\u5B9E\u73B0\u975E\u5E38\u9AD8\u6548\u7684\u53CD\u5411\u4EE3\u7406\u3001\u8D1F\u8F7D\u5E73\u8861\uFF0C\u4ED6\u53EF\u4EE5\u5904\u74062-3\u4E07\u5E76\u53D1\u8FDE\u63A5\u6570\uFF0C\u5B98\u65B9\u76D1\u6D4B\u80FD\u652F\u63015\u4E07\u5E76\u53D1\uFF0C\u73B0\u5728\u4E2D\u56FD\u4F7F\u7528nginx\u7F51\u7AD9\u7528\u6237\u6709\u5F88\u591A\uFF0C\u4F8B\u5982\uFF1A\u65B0\u6D6A\u3001\u7F51\u6613\u3001 \u817E\u8BAF\u7B49\u3002</p><h2 id="nginx-\u6709\u54EA\u4E9B\u4F18\u70B9" tabindex="-1"><a class="header-anchor" href="#nginx-\u6709\u54EA\u4E9B\u4F18\u70B9" aria-hidden="true">#</a> Nginx \u6709\u54EA\u4E9B\u4F18\u70B9\uFF1F</h2><ul><li>\u8DE8\u5E73\u53F0\u3001\u914D\u7F6E\u7B80\u5355\u3002</li><li>\u975E\u963B\u585E\u3001\u9AD8\u5E76\u53D1\u8FDE\u63A5\uFF1A\u5904\u7406 2-3 \u4E07\u5E76\u53D1\u8FDE\u63A5\u6570\uFF0C\u5B98\u65B9\u76D1\u6D4B\u80FD\u652F\u6301 5 \u4E07\u5E76\u53D1\u3002</li><li>\u5185\u5B58\u6D88\u8017\u5C0F\uFF1A\u5F00\u542F 10 \u4E2A Nginx \u624D\u5360 150M \u5185\u5B58\u3002</li><li>\u6210\u672C\u4F4E\u5EC9\uFF0C\u4E14\u5F00\u6E90\u3002</li><li>\u7A33\u5B9A\u6027\u9AD8\uFF0C\u5B95\u673A\u7684\u6982\u7387\u975E\u5E38\u5C0F\u3002</li><li>\u5185\u7F6E\u7684\u5065\u5EB7\u68C0\u67E5\u529F\u80FD\uFF1A\u5982\u679C\u6709\u4E00\u4E2A\u670D\u52A1\u5668\u5B95\u673A\uFF0C\u4F1A\u505A\u4E00\u4E2A\u5065\u5EB7\u68C0\u67E5\uFF0C\u518D\u53D1\u9001\u7684\u8BF7\u6C42\u5C31\u4E0D\u4F1A\u53D1\u9001\u5230\u5B95\u673A\u7684\u670D\u52A1\u5668\u4E86\u3002\u91CD\u65B0\u5C06\u8BF7\u6C42\u63D0\u4EA4\u5230\u5176\u4ED6\u7684\u8282\u70B9\u4E0A</li></ul><h2 id="nginx\u5E94\u7528\u573A\u666F" tabindex="-1"><a class="header-anchor" href="#nginx\u5E94\u7528\u573A\u666F" aria-hidden="true">#</a> Nginx\u5E94\u7528\u573A\u666F\uFF1F</h2><ul><li>http\u670D\u52A1\u5668\u3002Nginx\u662F\u4E00\u4E2Ahttp\u670D\u52A1\u53EF\u4EE5\u72EC\u7ACB\u63D0\u4F9Bhttp\u670D\u52A1\u3002\u53EF\u4EE5\u505A\u7F51\u9875\u9759\u6001\u670D\u52A1\u5668\u3002</li><li>\u865A\u62DF\u4E3B\u673A\u3002\u53EF\u4EE5\u5B9E\u73B0\u5728\u4E00\u53F0\u670D\u52A1\u5668\u865A\u62DF\u51FA\u591A\u4E2A\u7F51\u7AD9\uFF0C\u4F8B\u5982\u4E2A\u4EBA\u7F51\u7AD9\u4F7F\u7528\u7684\u865A\u62DF\u673A\u3002</li><li>\u53CD\u5411\u4EE3\u7406\uFF0C\u8D1F\u8F7D\u5747\u8861\u3002\u5F53\u7F51\u7AD9\u7684\u8BBF\u95EE\u91CF\u8FBE\u5230\u4E00\u5B9A\u7A0B\u5EA6\u540E\uFF0C\u5355\u53F0\u670D\u52A1\u5668\u4E0D\u80FD\u6EE1\u8DB3\u7528\u6237\u7684\u8BF7\u6C42\u65F6\uFF0C\u9700\u8981\u7528\u591A\u53F0\u670D\u52A1\u5668\u96C6\u7FA4\u53EF\u4EE5\u4F7F\u7528nginx\u505A\u53CD\u5411\u4EE3\u7406\u3002\u5E76\u4E14\u591A\u53F0\u670D\u52A1\u5668\u53EF\u4EE5\u5E73\u5747\u5206\u62C5\u8D1F\u8F7D\uFF0C\u4E0D\u4F1A\u5E94\u4E3A\u67D0\u53F0\u670D\u52A1\u5668\u8D1F\u8F7D\u9AD8\u5B95\u673A\u800C\u67D0\u53F0\u670D\u52A1\u5668\u95F2\u7F6E\u7684\u60C5\u51B5\u3002</li><li>nginz \u4E2D\u4E5F\u53EF\u4EE5\u914D\u7F6E\u5B89\u5168\u7BA1\u7406\u3001\u6BD4\u5982\u53EF\u4EE5\u4F7F\u7528Nginx\u642D\u5EFAAPI\u63A5\u53E3\u7F51\u5173,\u5BF9\u6BCF\u4E2A\u63A5\u53E3\u670D\u52A1\u8FDB\u884C\u62E6\u622A\u3002</li></ul><h2 id="nginx\u600E\u4E48\u5904\u7406\u8BF7\u6C42\u7684" tabindex="-1"><a class="header-anchor" href="#nginx\u600E\u4E48\u5904\u7406\u8BF7\u6C42\u7684" aria-hidden="true">#</a> Nginx\u600E\u4E48\u5904\u7406\u8BF7\u6C42\u7684\uFF1F</h2><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>server { # \u7B2C\u4E00\u4E2AServer\u533A\u5757\u5F00\u59CB\uFF0C\u8868\u793A\u4E00\u4E2A\u72EC\u7ACB\u7684\u865A\u62DF\u4E3B\u673A\u7AD9\u70B9
import{_ as e}from"./plugin-vue_export-helper.21dcd24c.js";import{o as i,c as n,e as a}from"./app.615e41d8.js";const d={},s=a(`<h1 id="nginx-40\u9053\u7CBE\u9009\u9762\u8BD5\u9898\u5FC5\u770B" tabindex="-1"><a class="header-anchor" href="#nginx-40\u9053\u7CBE\u9009\u9762\u8BD5\u9898\u5FC5\u770B" aria-hidden="true">#</a> Nginx\uFF1A40\u9053\u7CBE\u9009\u9762\u8BD5\u9898\u5FC5\u770B\u{1F44D}</h1><p>\u5927\u5BB6\u597D\uFF0C\u6211\u662F\u4E8C\u54E5\u5440\uFF01\u90A3\u5929\uFF0C\u6211\u5F92\u5F1F\u5C0F\u4E8C\u5077\u5077\u6478\u6478\u8DD1\u53BB\u4E86\u4E00\u5BB6\u516C\u53F8\u9762\u8BD5\uFF0C\u7ED3\u679C\u56DE\u6765\u7ED9\u6211\u8BF4\u5728 Nginx \u4E0A\u8DEA\u4E86\uFF0C\u95EE\u6211\u8BE5\u600E\u4E48\u529E\uFF1F</p><p>\u6211\u5148\u662F\u6BEB\u4E0D\u7559\u60C5\u5730\u6279\u8BC4\u4E86\u4ED6\uFF0C\u600E\u4E48\u80FD\u80CC\u7740\u9886\u5BFC\u53BB\u9762\u8BD5\u5462\uFF1F\u4E0D\u8FC7\uFF0C\u770B\u7740\u5C0F\u4E8C\u96BE\u8FC7\u7684\u8868\u60C5\uFF0C\u6211\u8FD8\u662F\u4E8E\u5FC3\u4E0D\u5FCD\uFF0C\u4E8E\u662F\u7ED9\u4ED6\u6574\u7406\u4E86 40 \u9053 Nginx \u7684\u9762\u8BD5\u9898\uFF0C\u5E0C\u671B\u80FD\u5E2E\u4ED6\u4E00\u628A\u3002</p><ul><li>\u4EC0\u4E48\u662FNginx\uFF1F</li><li>Nginx \u6709\u54EA\u4E9B\u4F18\u70B9\uFF1F</li><li>Nginx\u5E94\u7528\u573A\u666F\uFF1F</li><li>Nginx\u600E\u4E48\u5904\u7406\u8BF7\u6C42\u7684\uFF1F</li><li>Nginx \u662F\u5982\u4F55\u5B9E\u73B0\u9AD8\u5E76\u53D1\u7684\uFF1F</li><li>\u4EC0\u4E48\u662F\u6B63\u5411\u4EE3\u7406\uFF1F</li><li>\u4EC0\u4E48\u662F\u53CD\u5411\u4EE3\u7406\uFF1F</li><li>\u53CD\u5411\u4EE3\u7406\u670D\u52A1\u5668\u7684\u4F18\u70B9\u662F\u4EC0\u4E48?</li><li>Nginx\u76EE\u5F55\u7ED3\u6784\u6709\u54EA\u4E9B\uFF1F</li><li>Nginx\u914D\u7F6E\u6587\u4EF6nginx.conf\u6709\u54EA\u4E9B\u5C5E\u6027\u6A21\u5757?</li><li>cookie\u548Csession\u533A\u522B\uFF1F</li><li>\u4E3A\u4EC0\u4E48 Nginx \u4E0D\u4F7F\u7528\u591A\u7EBF\u7A0B\uFF1F</li><li>nginx\u548Capache\u7684\u533A\u522B</li><li>\u4EC0\u4E48\u662F\u52A8\u6001\u8D44\u6E90\u3001\u9759\u6001\u8D44\u6E90\u5206\u79BB\uFF1F</li><li>\u4E3A\u4EC0\u4E48\u8981\u505A\u52A8\u3001\u9759\u5206\u79BB\uFF1F</li><li>\u4EC0\u4E48\u53EB CDN \u670D\u52A1\uFF1F</li><li>Nginx\u600E\u4E48\u505A\u7684\u52A8\u9759\u5206\u79BB\uFF1F</li><li>Nginx\u8D1F\u8F7D\u5747\u8861\u7684\u7B97\u6CD5\u600E\u4E48\u5B9E\u73B0\u7684?\u7B56\u7565\u6709\u54EA\u4E9B?</li><li>\u5982\u4F55\u7528Nginx\u89E3\u51B3\u524D\u7AEF\u8DE8\u57DF\u95EE\u9898\uFF1F</li><li>Nginx\u865A\u62DF\u4E3B\u673A\u600E\u4E48\u914D\u7F6E?</li><li>location\u7684\u4F5C\u7528\u662F\u4EC0\u4E48\uFF1F</li><li>\u9650\u6D41\u600E\u4E48\u505A\u7684\uFF1F</li><li>\u6F0F\u6876\u6D41\u7B97\u6CD5\u548C\u4EE4\u724C\u6876\u7B97\u6CD5\u77E5\u9053\uFF1F</li><li>Nginx\u914D\u7F6E\u9AD8\u53EF\u7528\u6027\u600E\u4E48\u914D\u7F6E\uFF1F</li><li>Nginx\u600E\u4E48\u5224\u65AD\u522BIP\u4E0D\u53EF\u8BBF\u95EE\uFF1F</li><li>\u5728nginx\u4E2D\uFF0C\u5982\u4F55\u4F7F\u7528\u672A\u5B9A\u4E49\u7684\u670D\u52A1\u5668\u540D\u79F0\u6765\u963B\u6B62\u5904\u7406\u8BF7\u6C42\uFF1F</li><li>\u600E\u4E48\u9650\u5236\u6D4F\u89C8\u5668\u8BBF\u95EE\uFF1F</li><li>Rewrite\u5168\u5C40\u53D8\u91CF\u662F\u4EC0\u4E48\uFF1F</li><li>Nginx \u5982\u4F55\u5B9E\u73B0\u540E\u7AEF\u670D\u52A1\u7684\u5065\u5EB7\u68C0\u67E5\uFF1F</li><li>Nginx \u5982\u4F55\u5F00\u542F\u538B\u7F29\uFF1F</li><li>ngx_http_upstream_module\u7684\u4F5C\u7528\u662F\u4EC0\u4E48?</li><li>\u4EC0\u4E48\u662FC10K\u95EE\u9898?</li><li>Nginx\u662F\u5426\u652F\u6301\u5C06\u8BF7\u6C42\u538B\u7F29\u5230\u4E0A\u6E38?</li><li>\u5982\u4F55\u5728Nginx\u4E2D\u83B7\u5F97\u5F53\u524D\u7684\u65F6\u95F4?</li><li>\u7528Nginx\u670D\u52A1\u5668\u89E3\u91CA-s\u7684\u76EE\u7684\u662F\u4EC0\u4E48?</li><li>\u5982\u4F55\u5728Nginx\u670D\u52A1\u5668\u4E0A\u6DFB\u52A0\u6A21\u5757?</li><li>\u751F\u4EA7\u4E2D\u5982\u4F55\u8BBE\u7F6Eworker\u8FDB\u7A0B\u7684\u6570\u91CF\u5462\uFF1F</li><li>nginx\u72B6\u6001\u7801</li></ul><p><img src="http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/nginx/40-interview-63553177-7359-4f68-8673-5b44285cb701.png" alt=""></p><hr><h2 id="\u4EC0\u4E48\u662Fnginx" tabindex="-1"><a class="header-anchor" href="#\u4EC0\u4E48\u662Fnginx" aria-hidden="true">#</a> \u4EC0\u4E48\u662FNginx\uFF1F</h2><p>Nginx\u662F\u4E00\u4E2A \u8F7B\u91CF\u7EA7/\u9AD8\u6027\u80FD\u7684\u53CD\u5411\u4EE3\u7406Web\u670D\u52A1\u5668\uFF0C\u7528\u4E8E HTTP\u3001HTTPS\u3001SMTP\u3001POP3 \u548C IMAP \u534F\u8BAE\u3002\u4ED6\u5B9E\u73B0\u975E\u5E38\u9AD8\u6548\u7684\u53CD\u5411\u4EE3\u7406\u3001\u8D1F\u8F7D\u5E73\u8861\uFF0C\u4ED6\u53EF\u4EE5\u5904\u74062-3\u4E07\u5E76\u53D1\u8FDE\u63A5\u6570\uFF0C\u5B98\u65B9\u76D1\u6D4B\u80FD\u652F\u63015\u4E07\u5E76\u53D1\uFF0C\u73B0\u5728\u4E2D\u56FD\u4F7F\u7528nginx\u7F51\u7AD9\u7528\u6237\u6709\u5F88\u591A\uFF0C\u4F8B\u5982\uFF1A\u65B0\u6D6A\u3001\u7F51\u6613\u3001 \u817E\u8BAF\u7B49\u3002</p><h2 id="nginx-\u6709\u54EA\u4E9B\u4F18\u70B9" tabindex="-1"><a class="header-anchor" href="#nginx-\u6709\u54EA\u4E9B\u4F18\u70B9" aria-hidden="true">#</a> Nginx \u6709\u54EA\u4E9B\u4F18\u70B9\uFF1F</h2><ul><li>\u8DE8\u5E73\u53F0\u3001\u914D\u7F6E\u7B80\u5355\u3002</li><li>\u975E\u963B\u585E\u3001\u9AD8\u5E76\u53D1\u8FDE\u63A5\uFF1A\u5904\u7406 2-3 \u4E07\u5E76\u53D1\u8FDE\u63A5\u6570\uFF0C\u5B98\u65B9\u76D1\u6D4B\u80FD\u652F\u6301 5 \u4E07\u5E76\u53D1\u3002</li><li>\u5185\u5B58\u6D88\u8017\u5C0F\uFF1A\u5F00\u542F 10 \u4E2A Nginx \u624D\u5360 150M \u5185\u5B58\u3002</li><li>\u6210\u672C\u4F4E\u5EC9\uFF0C\u4E14\u5F00\u6E90\u3002</li><li>\u7A33\u5B9A\u6027\u9AD8\uFF0C\u5B95\u673A\u7684\u6982\u7387\u975E\u5E38\u5C0F\u3002</li><li>\u5185\u7F6E\u7684\u5065\u5EB7\u68C0\u67E5\u529F\u80FD\uFF1A\u5982\u679C\u6709\u4E00\u4E2A\u670D\u52A1\u5668\u5B95\u673A\uFF0C\u4F1A\u505A\u4E00\u4E2A\u5065\u5EB7\u68C0\u67E5\uFF0C\u518D\u53D1\u9001\u7684\u8BF7\u6C42\u5C31\u4E0D\u4F1A\u53D1\u9001\u5230\u5B95\u673A\u7684\u670D\u52A1\u5668\u4E86\u3002\u91CD\u65B0\u5C06\u8BF7\u6C42\u63D0\u4EA4\u5230\u5176\u4ED6\u7684\u8282\u70B9\u4E0A</li></ul><h2 id="nginx\u5E94\u7528\u573A\u666F" tabindex="-1"><a class="header-anchor" href="#nginx\u5E94\u7528\u573A\u666F" aria-hidden="true">#</a> Nginx\u5E94\u7528\u573A\u666F\uFF1F</h2><ul><li>http\u670D\u52A1\u5668\u3002Nginx\u662F\u4E00\u4E2Ahttp\u670D\u52A1\u53EF\u4EE5\u72EC\u7ACB\u63D0\u4F9Bhttp\u670D\u52A1\u3002\u53EF\u4EE5\u505A\u7F51\u9875\u9759\u6001\u670D\u52A1\u5668\u3002</li><li>\u865A\u62DF\u4E3B\u673A\u3002\u53EF\u4EE5\u5B9E\u73B0\u5728\u4E00\u53F0\u670D\u52A1\u5668\u865A\u62DF\u51FA\u591A\u4E2A\u7F51\u7AD9\uFF0C\u4F8B\u5982\u4E2A\u4EBA\u7F51\u7AD9\u4F7F\u7528\u7684\u865A\u62DF\u673A\u3002</li><li>\u53CD\u5411\u4EE3\u7406\uFF0C\u8D1F\u8F7D\u5747\u8861\u3002\u5F53\u7F51\u7AD9\u7684\u8BBF\u95EE\u91CF\u8FBE\u5230\u4E00\u5B9A\u7A0B\u5EA6\u540E\uFF0C\u5355\u53F0\u670D\u52A1\u5668\u4E0D\u80FD\u6EE1\u8DB3\u7528\u6237\u7684\u8BF7\u6C42\u65F6\uFF0C\u9700\u8981\u7528\u591A\u53F0\u670D\u52A1\u5668\u96C6\u7FA4\u53EF\u4EE5\u4F7F\u7528nginx\u505A\u53CD\u5411\u4EE3\u7406\u3002\u5E76\u4E14\u591A\u53F0\u670D\u52A1\u5668\u53EF\u4EE5\u5E73\u5747\u5206\u62C5\u8D1F\u8F7D\uFF0C\u4E0D\u4F1A\u5E94\u4E3A\u67D0\u53F0\u670D\u52A1\u5668\u8D1F\u8F7D\u9AD8\u5B95\u673A\u800C\u67D0\u53F0\u670D\u52A1\u5668\u95F2\u7F6E\u7684\u60C5\u51B5\u3002</li><li>nginz \u4E2D\u4E5F\u53EF\u4EE5\u914D\u7F6E\u5B89\u5168\u7BA1\u7406\u3001\u6BD4\u5982\u53EF\u4EE5\u4F7F\u7528Nginx\u642D\u5EFAAPI\u63A5\u53E3\u7F51\u5173,\u5BF9\u6BCF\u4E2A\u63A5\u53E3\u670D\u52A1\u8FDB\u884C\u62E6\u622A\u3002</li></ul><h2 id="nginx\u600E\u4E48\u5904\u7406\u8BF7\u6C42\u7684" tabindex="-1"><a class="header-anchor" href="#nginx\u600E\u4E48\u5904\u7406\u8BF7\u6C42\u7684" aria-hidden="true">#</a> Nginx\u600E\u4E48\u5904\u7406\u8BF7\u6C42\u7684\uFF1F</h2><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>server { # \u7B2C\u4E00\u4E2AServer\u533A\u5757\u5F00\u59CB\uFF0C\u8868\u793A\u4E00\u4E2A\u72EC\u7ACB\u7684\u865A\u62DF\u4E3B\u673A\u7AD9\u70B9
listen 80\uFF1B # \u63D0\u4F9B\u670D\u52A1\u7684\u7AEF\u53E3\uFF0C\u9ED8\u8BA480
server_name localhost; # \u63D0\u4F9B\u670D\u52A1\u7684\u57DF\u540D\u4E3B\u673A\u540D
location / { # \u7B2C\u4E00\u4E2Alocation\u533A\u5757\u5F00\u59CB
......
import{h as t,f as s,u as i,g as f,i as c,r as p}from"./app.a0271b9c.js";import{S as d}from"./SkipLink.e761490e.js";const h=()=>t("svg",{xmlns:"http://www.w3.org/2000/svg",class:"page-404-icon",viewBox:"0 0 178 130",innerHTML:'<defs><linearGradient id="b" x1=".5" x2=".5" y2="1" gradientUnits="objectBoundingBox"><stop offset="0" stop-color="#e9e9e9"/><stop offset="1" stop-color="#fff" stop-opacity="0"/></linearGradient><linearGradient id="c" x1=".5" x2=".5" y2="1" gradientUnits="objectBoundingBox"><stop offset="0" stop-color="#dcdcdc"/><stop offset="1" stop-color="#fff" stop-opacity="0"/></linearGradient><linearGradient id="d" x1=".5" x2=".5" y2="1" gradientUnits="objectBoundingBox"><stop offset="0" stop-color="#f1f1f1"/><stop offset="1" stop-color="#fff" stop-opacity="0"/></linearGradient><linearGradient id="e" x1=".5" x2=".5" y2="1" gradientUnits="objectBoundingBox"><stop offset="0" stop-color="#dedede"/><stop offset="1" stop-color="#fff" stop-opacity="0"/></linearGradient><linearGradient id="f" x1=".5" x2=".5" y2="1" gradientUnits="objectBoundingBox"><stop offset="0" stop-color="#e8e8e8"/><stop offset="1" stop-color="#fff" stop-opacity="0"/></linearGradient><linearGradient id="g" x1=".213" y1="1.265" x2=".846" gradientUnits="objectBoundingBox"><stop offset="0" stop-color="#fff"/><stop offset="1" stop-color="#f5f5f5"/></linearGradient><linearGradient id="h" x1=".5" x2=".5" y2="1" gradientUnits="objectBoundingBox"><stop offset="0" stop-color="#c5c5c5"/><stop offset="1" stop-color="#fff" stop-opacity="0"/></linearGradient><linearGradient id="i" x1=".5" x2=".5" y2="1" gradientUnits="objectBoundingBox"><stop offset="0" stop-color="#acacac"/><stop offset="1" stop-color="#f2f2f2" stop-opacity=".388"/></linearGradient><clipPath id="a"><path transform="translate(744 1111)" fill="none" d="M0 0h178v130H0z"/></clipPath></defs><g transform="translate(-744 -1111)" clip-path="url(#a)"><path d="M0 10.795 36.6 0v93.779L0 104.574z" transform="translate(772.466 1122.142)" fill="url(#b)"/><path d="M-8.492 10.642-26.361-.469v93.78l17.868 11.111z" transform="translate(780.958 1122.293)" fill="url(#c)"/><path d="M-8.5 5.55 28.106-5.3 10.228-16.437l-36.6 10.845z" transform="translate(780.963 1127.438)" fill="url(#d)"/><path d="M0 10.539 35.741 0v91.56L0 102.1z" transform="translate(870.158 1123.617)" fill="url(#d)"/><path d="M-8.913 10.38-26.361-.469v91.562l17.448 10.848z" transform="translate(879.071 1123.775)" fill="url(#e)"/><path d="m-8.918 5.032 35.741-10.59L9.366-16.437-26.375-5.848z" transform="translate(879.076 1129.175)" fill="url(#d)"/><path d="M0 9.137 30.839 0v79.381L0 88.519z" transform="translate(799.678 1151.579)" fill="url(#f)"/><path d="m-11.306 8.936-15.054-9.4v79.377l15.054 9.4z" transform="translate(810.985 1151.78)" fill="url(#c)"/><path d="M-11.313 2.087 19.526-7.05 4.464-16.437-26.375-7.3z" transform="translate(810.991 1158.63)" fill="url(#g)"/><path d="M178 53H0a51.361 51.361 0 0 1 10.453-20.952 74.532 74.532 0 0 1 19.742-16.811A103.3 103.3 0 0 1 57.089 4.058a127.515 127.515 0 0 1 63.823 0 103.3 103.3 0 0 1 26.894 11.179 74.532 74.532 0 0 1 19.741 16.811A51.363 51.363 0 0 1 178 53z" transform="translate(744 1187.549)" fill="url(#h)"/><path d="m814.529 1199.586-1.272 1.212h2.3l1.2-1.212zM816.725 1194.909l-1.272 1.212h2.3l1.263-1.212zM863.284 1199.585l-1.272 1.212h2.3l1.2-1.212zM865.519 1194.9l-1.272 1.212h2.3l1.263-1.212z" fill="#cbcbcb"/><path d="m799.527 1191.21 10.182-21.97h4.381l-9.931 21.719h14.876v3.941h-19.508zm13.081-9.493h4.152v17.859h-4.152zm20.728 18.151q-4.256 0-6.457-2.274a8.74 8.74 0 0 1-2.2-6.343v-13.791a8.708 8.708 0 0 1 2.21-6.353q2.212-2.264 6.447-2.264 4.256 0 6.457 2.253a8.726 8.726 0 0 1 2.2 6.363v13.792a8.708 8.708 0 0 1-2.21 6.349q-2.211 2.268-6.447 2.268zm0-4.048a4.29 4.29 0 0 0 3.328-1.178 4.862 4.862 0 0 0 1.074-3.39v-13.792a4.893 4.893 0 0 0-1.064-3.39 4.285 4.285 0 0 0-3.338-1.179 4.285 4.285 0 0 0-3.338 1.179 4.893 4.893 0 0 0-1.064 3.39v13.791a4.862 4.862 0 0 0 1.075 3.391 4.29 4.29 0 0 0 3.327 1.178zm14.928-4.61 10.181-21.97h4.381l-9.931 21.719h14.876v3.941h-19.507zm13.081-9.493h4.152v17.859h-4.152z" fill="#c6c6c6"/><path d="m798.306 1192.431 10.182-21.97h4.381l-9.931 21.719h14.876v3.941h-19.508zm13.081-9.493h4.152v17.859h-4.152zm20.728 18.151q-4.256 0-6.457-2.274a8.74 8.74 0 0 1-2.2-6.343v-13.791a8.708 8.708 0 0 1 2.21-6.353q2.212-2.264 6.447-2.264 4.256 0 6.457 2.253a8.726 8.726 0 0 1 2.2 6.363v13.792a8.708 8.708 0 0 1-2.21 6.349q-2.211 2.268-6.447 2.268zm0-4.048a4.29 4.29 0 0 0 3.328-1.178 4.862 4.862 0 0 0 1.074-3.39v-13.792a4.893 4.893 0 0 0-1.064-3.39 4.285 4.285 0 0 0-3.338-1.179 4.285 4.285 0 0 0-3.338 1.179 4.893 4.893 0 0 0-1.064 3.39v13.791a4.862 4.862 0 0 0 1.075 3.391 4.29 4.29 0 0 0 3.327 1.178zm14.928-4.61 10.181-21.97h4.381l-9.931 21.719h14.876v3.941h-19.507zm13.081-9.493h4.152v17.859h-4.152z" fill="#b2b2b2"/><path d="m-27.694-19.435 10.182 14.517h4.381l-9.931-14.352h14.876v-2.606h-19.508zm13.081 6.273h4.152v-11.8h-4.152zM6.115-25.156q-4.256 0-6.457 1.5a4.8 4.8 0 0 0-2.2 4.191v9.113a4.784 4.784 0 0 0 2.212 4.2 11.511 11.511 0 0 0 6.447 1.5q4.256 0 6.457-1.489a4.786 4.786 0 0 0 2.2-4.2v-9.113a4.784 4.784 0 0 0-2.212-4.2 11.511 11.511 0 0 0-6.447-1.502zm0 2.675a5.705 5.705 0 0 1 3.328.779 2.6 2.6 0 0 1 1.074 2.24v9.113a2.607 2.607 0 0 1-1.064 2.24 5.7 5.7 0 0 1-3.338.779 5.7 5.7 0 0 1-3.338-.779 2.607 2.607 0 0 1-1.064-2.24v-9.113A2.6 2.6 0 0 1 2.788-21.7a5.705 5.705 0 0 1 3.327-.782zm14.927 3.047L31.224-4.918h4.381l-9.931-14.351H40.55v-2.606H21.043zm13.081 6.273h4.152v-11.8h-4.151z" transform="translate(826 1226.245)" opacity=".32" fill="url(#i)"/><g fill="#e6e6e6"><path d="m858.428 1169.23-1.2 1.259h4.388l1.178-1.259zM802.944 1192.187l1.288-1.375h7.143v1.375zm8.415-9.25 1.273-1.234h4.15l-1.235 1.234zm-2.855-12.469 1.198-1.259h4.367l-1.178 1.259zM861.362 1181.678l-1.27 1.3h4.188l1.236-1.3zM865.519 1190.9l-1.27 1.3h2.3l1.162-1.3zM852.838 1190.791l-1.207 1.508h8.447v-1.508z"/></g></g>'});var u=s({name:"404",setup(){var a;const l=i(),o=f(),n=()=>{const e=o.value.routeLocales["404msg"];return e[Math.floor(Math.random()*e.length)]},{navigate:r}=c({to:(a=o.value.home)!=null?a:l.value});return()=>[t(d),t(p("CommonWrapper"),{sidebar:!1},()=>t("main",{class:"page not-found",id:"main-content"},[t(h),t("blockquote",n()),t("button",{class:"action-button",onClick:()=>{window.history.go(-1)}},o.value.routeLocales.back),t("button",{class:"action-button",onClick:()=>r()},o.value.routeLocales.home)]))]}});export{u as default};
import{h as t,f as s,u as i,g as f,i as c,r as p}from"./app.615e41d8.js";import{S as d}from"./SkipLink.a2c3a90f.js";const h=()=>t("svg",{xmlns:"http://www.w3.org/2000/svg",class:"page-404-icon",viewBox:"0 0 178 130",innerHTML:'<defs><linearGradient id="b" x1=".5" x2=".5" y2="1" gradientUnits="objectBoundingBox"><stop offset="0" stop-color="#e9e9e9"/><stop offset="1" stop-color="#fff" stop-opacity="0"/></linearGradient><linearGradient id="c" x1=".5" x2=".5" y2="1" gradientUnits="objectBoundingBox"><stop offset="0" stop-color="#dcdcdc"/><stop offset="1" stop-color="#fff" stop-opacity="0"/></linearGradient><linearGradient id="d" x1=".5" x2=".5" y2="1" gradientUnits="objectBoundingBox"><stop offset="0" stop-color="#f1f1f1"/><stop offset="1" stop-color="#fff" stop-opacity="0"/></linearGradient><linearGradient id="e" x1=".5" x2=".5" y2="1" gradientUnits="objectBoundingBox"><stop offset="0" stop-color="#dedede"/><stop offset="1" stop-color="#fff" stop-opacity="0"/></linearGradient><linearGradient id="f" x1=".5" x2=".5" y2="1" gradientUnits="objectBoundingBox"><stop offset="0" stop-color="#e8e8e8"/><stop offset="1" stop-color="#fff" stop-opacity="0"/></linearGradient><linearGradient id="g" x1=".213" y1="1.265" x2=".846" gradientUnits="objectBoundingBox"><stop offset="0" stop-color="#fff"/><stop offset="1" stop-color="#f5f5f5"/></linearGradient><linearGradient id="h" x1=".5" x2=".5" y2="1" gradientUnits="objectBoundingBox"><stop offset="0" stop-color="#c5c5c5"/><stop offset="1" stop-color="#fff" stop-opacity="0"/></linearGradient><linearGradient id="i" x1=".5" x2=".5" y2="1" gradientUnits="objectBoundingBox"><stop offset="0" stop-color="#acacac"/><stop offset="1" stop-color="#f2f2f2" stop-opacity=".388"/></linearGradient><clipPath id="a"><path transform="translate(744 1111)" fill="none" d="M0 0h178v130H0z"/></clipPath></defs><g transform="translate(-744 -1111)" clip-path="url(#a)"><path d="M0 10.795 36.6 0v93.779L0 104.574z" transform="translate(772.466 1122.142)" fill="url(#b)"/><path d="M-8.492 10.642-26.361-.469v93.78l17.868 11.111z" transform="translate(780.958 1122.293)" fill="url(#c)"/><path d="M-8.5 5.55 28.106-5.3 10.228-16.437l-36.6 10.845z" transform="translate(780.963 1127.438)" fill="url(#d)"/><path d="M0 10.539 35.741 0v91.56L0 102.1z" transform="translate(870.158 1123.617)" fill="url(#d)"/><path d="M-8.913 10.38-26.361-.469v91.562l17.448 10.848z" transform="translate(879.071 1123.775)" fill="url(#e)"/><path d="m-8.918 5.032 35.741-10.59L9.366-16.437-26.375-5.848z" transform="translate(879.076 1129.175)" fill="url(#d)"/><path d="M0 9.137 30.839 0v79.381L0 88.519z" transform="translate(799.678 1151.579)" fill="url(#f)"/><path d="m-11.306 8.936-15.054-9.4v79.377l15.054 9.4z" transform="translate(810.985 1151.78)" fill="url(#c)"/><path d="M-11.313 2.087 19.526-7.05 4.464-16.437-26.375-7.3z" transform="translate(810.991 1158.63)" fill="url(#g)"/><path d="M178 53H0a51.361 51.361 0 0 1 10.453-20.952 74.532 74.532 0 0 1 19.742-16.811A103.3 103.3 0 0 1 57.089 4.058a127.515 127.515 0 0 1 63.823 0 103.3 103.3 0 0 1 26.894 11.179 74.532 74.532 0 0 1 19.741 16.811A51.363 51.363 0 0 1 178 53z" transform="translate(744 1187.549)" fill="url(#h)"/><path d="m814.529 1199.586-1.272 1.212h2.3l1.2-1.212zM816.725 1194.909l-1.272 1.212h2.3l1.263-1.212zM863.284 1199.585l-1.272 1.212h2.3l1.2-1.212zM865.519 1194.9l-1.272 1.212h2.3l1.263-1.212z" fill="#cbcbcb"/><path d="m799.527 1191.21 10.182-21.97h4.381l-9.931 21.719h14.876v3.941h-19.508zm13.081-9.493h4.152v17.859h-4.152zm20.728 18.151q-4.256 0-6.457-2.274a8.74 8.74 0 0 1-2.2-6.343v-13.791a8.708 8.708 0 0 1 2.21-6.353q2.212-2.264 6.447-2.264 4.256 0 6.457 2.253a8.726 8.726 0 0 1 2.2 6.363v13.792a8.708 8.708 0 0 1-2.21 6.349q-2.211 2.268-6.447 2.268zm0-4.048a4.29 4.29 0 0 0 3.328-1.178 4.862 4.862 0 0 0 1.074-3.39v-13.792a4.893 4.893 0 0 0-1.064-3.39 4.285 4.285 0 0 0-3.338-1.179 4.285 4.285 0 0 0-3.338 1.179 4.893 4.893 0 0 0-1.064 3.39v13.791a4.862 4.862 0 0 0 1.075 3.391 4.29 4.29 0 0 0 3.327 1.178zm14.928-4.61 10.181-21.97h4.381l-9.931 21.719h14.876v3.941h-19.507zm13.081-9.493h4.152v17.859h-4.152z" fill="#c6c6c6"/><path d="m798.306 1192.431 10.182-21.97h4.381l-9.931 21.719h14.876v3.941h-19.508zm13.081-9.493h4.152v17.859h-4.152zm20.728 18.151q-4.256 0-6.457-2.274a8.74 8.74 0 0 1-2.2-6.343v-13.791a8.708 8.708 0 0 1 2.21-6.353q2.212-2.264 6.447-2.264 4.256 0 6.457 2.253a8.726 8.726 0 0 1 2.2 6.363v13.792a8.708 8.708 0 0 1-2.21 6.349q-2.211 2.268-6.447 2.268zm0-4.048a4.29 4.29 0 0 0 3.328-1.178 4.862 4.862 0 0 0 1.074-3.39v-13.792a4.893 4.893 0 0 0-1.064-3.39 4.285 4.285 0 0 0-3.338-1.179 4.285 4.285 0 0 0-3.338 1.179 4.893 4.893 0 0 0-1.064 3.39v13.791a4.862 4.862 0 0 0 1.075 3.391 4.29 4.29 0 0 0 3.327 1.178zm14.928-4.61 10.181-21.97h4.381l-9.931 21.719h14.876v3.941h-19.507zm13.081-9.493h4.152v17.859h-4.152z" fill="#b2b2b2"/><path d="m-27.694-19.435 10.182 14.517h4.381l-9.931-14.352h14.876v-2.606h-19.508zm13.081 6.273h4.152v-11.8h-4.152zM6.115-25.156q-4.256 0-6.457 1.5a4.8 4.8 0 0 0-2.2 4.191v9.113a4.784 4.784 0 0 0 2.212 4.2 11.511 11.511 0 0 0 6.447 1.5q4.256 0 6.457-1.489a4.786 4.786 0 0 0 2.2-4.2v-9.113a4.784 4.784 0 0 0-2.212-4.2 11.511 11.511 0 0 0-6.447-1.502zm0 2.675a5.705 5.705 0 0 1 3.328.779 2.6 2.6 0 0 1 1.074 2.24v9.113a2.607 2.607 0 0 1-1.064 2.24 5.7 5.7 0 0 1-3.338.779 5.7 5.7 0 0 1-3.338-.779 2.607 2.607 0 0 1-1.064-2.24v-9.113A2.6 2.6 0 0 1 2.788-21.7a5.705 5.705 0 0 1 3.327-.782zm14.927 3.047L31.224-4.918h4.381l-9.931-14.351H40.55v-2.606H21.043zm13.081 6.273h4.152v-11.8h-4.151z" transform="translate(826 1226.245)" opacity=".32" fill="url(#i)"/><g fill="#e6e6e6"><path d="m858.428 1169.23-1.2 1.259h4.388l1.178-1.259zM802.944 1192.187l1.288-1.375h7.143v1.375zm8.415-9.25 1.273-1.234h4.15l-1.235 1.234zm-2.855-12.469 1.198-1.259h4.367l-1.178 1.259zM861.362 1181.678l-1.27 1.3h4.188l1.236-1.3zM865.519 1190.9l-1.27 1.3h2.3l1.162-1.3zM852.838 1190.791l-1.207 1.508h8.447v-1.508z"/></g></g>'});var u=s({name:"404",setup(){var a;const l=i(),o=f(),n=()=>{const e=o.value.routeLocales["404msg"];return e[Math.floor(Math.random()*e.length)]},{navigate:r}=c({to:(a=o.value.home)!=null?a:l.value});return()=>[t(d),t(p("CommonWrapper"),{sidebar:!1},()=>t("main",{class:"page not-found",id:"main-content"},[t(h),t("blockquote",n()),t("button",{class:"action-button",onClick:()=>{window.history.go(-1)}},o.value.routeLocales.back),t("button",{class:"action-button",onClick:()=>r()},o.value.routeLocales.home)]))]}});export{u as default};
import{_ as e}from"./plugin-vue_export-helper.21dcd24c.js";import{o as r,c as t}from"./app.a0271b9c.js";const _={};function c(o,a){return r(),t("div")}var m=e(_,[["render",c],["__file","404.html.vue"]]);export{m as default};
import{_ as e}from"./plugin-vue_export-helper.21dcd24c.js";import{o as r,c as t}from"./app.615e41d8.js";const _={};function c(o,a){return r(),t("div")}var m=e(_,[["render",c],["__file","404.html.vue"]]);export{m as default};
import{_ as t}from"./plugin-vue_export-helper.21dcd24c.js";import{r as p,o,c,a as n,b as a,e as l,d as e}from"./app.a0271b9c.js";const i={},u=l(`<p>\u6700\u5E38\u7528\u7684&quot;<strong>\u751F\u4EA7\u8005-\u6D88\u8D39\u8005</strong>&quot;\u95EE\u9898\u4E2D\uFF0C\u961F\u5217\u901A\u5E38\u88AB\u89C6\u4F5C\u7EBF\u7A0B\u95F4\u64CD\u4F5C\u7684\u6570\u636E\u5BB9\u5668\uFF0C\u8FD9\u6837\uFF0C\u53EF\u4EE5\u5BF9\u5404\u4E2A\u6A21\u5757\u7684\u4E1A\u52A1\u529F\u80FD\u8FDB\u884C\u89E3\u8026\uFF0C\u751F\u4EA7\u8005\u5C06\u201C\u751F\u4EA7\u201D\u51FA\u6765\u7684\u6570\u636E\u653E\u7F6E\u5728\u6570\u636E\u5BB9\u5668\u4E2D\uFF0C\u800C\u6D88\u8D39\u8005\u4EC5\u4EC5\u53EA\u9700\u8981\u5728\u201C\u6570\u636E\u5BB9\u5668\u201D\u4E2D\u8FDB\u884C\u83B7\u53D6\u6570\u636E\u5373\u53EF\uFF0C\u8FD9\u6837\u751F\u4EA7\u8005\u7EBF\u7A0B\u548C\u6D88\u8D39\u8005\u7EBF\u7A0B\u5C31\u80FD\u591F\u8FDB\u884C\u89E3\u8026\uFF0C\u53EA\u4E13\u6CE8\u4E8E\u81EA\u5DF1\u7684\u4E1A\u52A1\u529F\u80FD\u5373\u53EF\u3002</p><p>\u963B\u585E\u961F\u5217\uFF08BlockingQueue\uFF09\u88AB\u5E7F\u6CDB\u4F7F\u7528\u5728\u201C\u751F\u4EA7\u8005-\u6D88\u8D39\u8005\u201D\u95EE\u9898\u4E2D\uFF0C\u5176\u539F\u56E0\u662FBlockingQueue\u63D0\u4F9B\u4E86\u53EF\u963B\u585E\u7684\u63D2\u5165\u548C\u79FB\u9664\u7684\u65B9\u6CD5\u3002<strong>\u5F53\u961F\u5217\u5BB9\u5668\u5DF2\u6EE1\uFF0C\u751F\u4EA7\u8005\u7EBF\u7A0B\u4F1A\u88AB\u963B\u585E\uFF0C\u76F4\u5230\u961F\u5217\u672A\u6EE1\uFF1B\u5F53\u961F\u5217\u5BB9\u5668\u4E3A\u7A7A\u65F6\uFF0C\u6D88\u8D39\u8005\u7EBF\u7A0B\u4F1A\u88AB\u963B\u585E\uFF0C\u76F4\u81F3\u961F\u5217\u975E\u7A7A\u65F6\u4E3A\u6B62</strong>\u3002</p><h2 id="\u57FA\u672C\u64CD\u4F5C" tabindex="-1"><a class="header-anchor" href="#\u57FA\u672C\u64CD\u4F5C" aria-hidden="true">#</a> \u57FA\u672C\u64CD\u4F5C</h2><p>BlockingQueue\u57FA\u672C\u64CD\u4F5C\u603B\u7ED3\u5982\u4E0B\uFF08\u6B64\u56FE\u6765\u6E90\u4E8EJAVA API\u6587\u6863\uFF09\uFF1A</p><p><img src="http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/thread/BlockingQueue-01.png" alt=""></p><p>BlockingQueue\u7EE7\u627F\u4E8EQueue\u63A5\u53E3\uFF0C\u56E0\u6B64\uFF0C\u5BF9\u6570\u636E\u5143\u7D20\u7684\u57FA\u672C\u64CD\u4F5C\u6709\uFF1A</p><p>1\uFF09\u63D2\u5165\u5143\u7D20</p><ol><li>add(E e) \uFF1A\u5F80\u961F\u5217\u63D2\u5165\u6570\u636E\uFF0C\u5F53\u961F\u5217\u6EE1\u65F6\uFF0C\u63D2\u5165\u5143\u7D20\u65F6\u4F1A\u629B\u51FAIllegalStateException\u5F02\u5E38\uFF1B</li><li>offer(E e)\uFF1A\u5F53\u5F80\u961F\u5217\u63D2\u5165\u6570\u636E\u65F6\uFF0C\u63D2\u5165\u6210\u529F\u8FD4\u56DE<code>true</code>\uFF0C\u5426\u5219\u5219\u8FD4\u56DE<code>false</code>\u3002\u5F53\u961F\u5217\u6EE1\u65F6\u4E0D\u4F1A\u629B\u51FA\u5F02\u5E38\uFF1B</li></ol><p>2\uFF09\u5220\u9664\u5143\u7D20</p><ol><li>remove(Object o)\uFF1A\u4ECE\u961F\u5217\u4E2D\u5220\u9664\u6570\u636E\uFF0C\u6210\u529F\u5219\u8FD4\u56DE<code>true</code>\uFF0C\u5426\u5219\u4E3A<code>false</code></li><li>poll\uFF1A\u5220\u9664\u6570\u636E\uFF0C\u5F53\u961F\u5217\u4E3A\u7A7A\u65F6\uFF0C\u8FD4\u56DEnull\uFF1B</li></ol><p>3\uFF09\u67E5\u770B\u5143\u7D20</p><ol><li>element\uFF1A\u83B7\u53D6\u961F\u5934\u5143\u7D20\uFF0C\u5982\u679C\u961F\u5217\u4E3A\u7A7A\u65F6\u5219\u629B\u51FANoSuchElementException\u5F02\u5E38\uFF1B</li><li>peek\uFF1A\u83B7\u53D6\u961F\u5934\u5143\u7D20\uFF0C\u5982\u679C\u961F\u5217\u4E3A\u7A7A\u5219\u629B\u51FANoSuchElementException\u5F02\u5E38</li></ol><p>BlockingQueue\u5177\u6709\u7684\u7279\u6B8A\u64CD\u4F5C\uFF1A</p><p>1\uFF09\u63D2\u5165\u6570\u636E\uFF1A</p><ol><li>put\uFF1A\u5F53\u963B\u585E\u961F\u5217\u5BB9\u91CF\u5DF2\u7ECF\u6EE1\u65F6\uFF0C\u5F80\u963B\u585E\u961F\u5217\u63D2\u5165\u6570\u636E\u7684\u7EBF\u7A0B\u4F1A\u88AB\u963B\u585E\uFF0C\u76F4\u81F3\u963B\u585E\u961F\u5217\u5DF2\u7ECF\u6709\u7A7A\u4F59\u7684\u5BB9\u91CF\u53EF\u4F9B\u4F7F\u7528\uFF1B</li><li><code>offer(E e, long timeout, TimeUnit unit)</code>\uFF1A\u82E5\u963B\u585E\u961F\u5217\u5DF2\u7ECF\u6EE1\u65F6\uFF0C\u540C\u6837\u4F1A\u963B\u585E\u63D2\u5165\u6570\u636E\u7684\u7EBF\u7A0B\uFF0C\u76F4\u81F3\u963B\u585E\u961F\u5217\u5DF2\u7ECF\u6709\u7A7A\u4F59\u7684\u5730\u65B9\uFF0C\u4E0Eput\u65B9\u6CD5\u4E0D\u540C\u7684\u662F\uFF0C\u8BE5\u65B9\u6CD5\u4F1A\u6709\u4E00\u4E2A\u8D85\u65F6\u65F6\u95F4\uFF0C\u82E5\u8D85\u8FC7\u5F53\u524D\u7ED9\u5B9A\u7684\u8D85\u65F6\u65F6\u95F4\uFF0C\u63D2\u5165\u6570\u636E\u7684\u7EBF\u7A0B\u4F1A\u9000\u51FA\uFF1B</li></ol><p>2\uFF09\u5220\u9664\u6570\u636E</p><ol><li><code>take()</code>\uFF1A\u5F53\u963B\u585E\u961F\u5217\u4E3A\u7A7A\u65F6\uFF0C\u83B7\u53D6\u961F\u5934\u6570\u636E\u7684\u7EBF\u7A0B\u4F1A\u88AB\u963B\u585E\uFF1B</li><li><code>poll(long timeout, TimeUnit unit)</code>\uFF1A\u5F53\u963B\u585E\u961F\u5217\u4E3A\u7A7A\u65F6\uFF0C\u83B7\u53D6\u6570\u636E\u7684\u7EBF\u7A0B\u4F1A\u88AB\u963B\u585E\uFF0C\u53E6\u5916\uFF0C\u5982\u679C\u88AB\u963B\u585E\u7684\u7EBF\u7A0B\u8D85\u8FC7\u4E86\u7ED9\u5B9A\u7684\u65F6\u957F\uFF0C\u8BE5\u7EBF\u7A0B\u4F1A\u9000\u51FA</li></ol><h2 id="\u5E38\u7528\u7684blockingqueue" tabindex="-1"><a class="header-anchor" href="#\u5E38\u7528\u7684blockingqueue" aria-hidden="true">#</a> \u5E38\u7528\u7684BlockingQueue</h2><p>\u5B9E\u73B0BlockingQueue\u63A5\u53E3\u7684\u6709<code>ArrayBlockingQueue, DelayQueue, LinkedBlockingDeque, LinkedBlockingQueue, LinkedTransferQueue, PriorityBlockingQueue, SynchronousQueue</code>\uFF0C\u800C\u8FD9\u51E0\u79CD\u5E38\u89C1\u7684\u963B\u585E\u961F\u5217\u4E5F\u662F\u5728\u5B9E\u9645\u7F16\u7A0B\u4E2D\u4F1A\u5E38\u7528\u7684\uFF0C\u4E0B\u9762\u5BF9\u8FD9\u51E0\u79CD\u5E38\u89C1\u7684\u963B\u585E\u961F\u5217\u8FDB\u884C\u8BF4\u660E\uFF1A</p><h3 id="arrayblockingqueue" tabindex="-1"><a class="header-anchor" href="#arrayblockingqueue" aria-hidden="true">#</a> ArrayBlockingQueue</h3><p><strong>ArrayBlockingQueue</strong>\u662F\u7531\u6570\u7EC4\u5B9E\u73B0\u7684\u6709\u754C\u963B\u585E\u961F\u5217\u3002\u8BE5\u961F\u5217\u547D\u4EE4\u5143\u7D20FIFO\uFF08\u5148\u8FDB\u5148\u51FA\uFF09\u3002\u56E0\u6B64\uFF0C\u5BF9\u5934\u5143\u7D20\u65F6\u961F\u5217\u4E2D\u5B58\u5728\u65F6\u95F4\u6700\u957F\u7684\u6570\u636E\u5143\u7D20\uFF0C\u800C\u5BF9\u5C3E\u6570\u636E\u5219\u662F\u5F53\u524D\u961F\u5217\u6700\u65B0\u7684\u6570\u636E\u5143\u7D20\u3002ArrayBlockingQueue\u53EF\u4F5C\u4E3A\u201C\u6709\u754C\u6570\u636E\u7F13\u51B2\u533A\u201D\uFF0C\u751F\u4EA7\u8005\u63D2\u5165\u6570\u636E\u5230\u961F\u5217\u5BB9\u5668\u4E2D\uFF0C\u5E76\u7531\u6D88\u8D39\u8005\u63D0\u53D6\u3002ArrayBlockingQueue\u4E00\u65E6\u521B\u5EFA\uFF0C\u5BB9\u91CF\u4E0D\u80FD\u6539\u53D8\u3002</p><p>\u5F53\u961F\u5217\u5BB9\u91CF\u6EE1\u65F6\uFF0C\u5C1D\u8BD5\u5C06\u5143\u7D20\u653E\u5165\u961F\u5217\u5C06\u5BFC\u81F4\u64CD\u4F5C\u963B\u585E;\u5C1D\u8BD5\u4ECE\u4E00\u4E2A\u7A7A\u961F\u5217\u4E2D\u53D6\u4E00\u4E2A\u5143\u7D20\u4E5F\u4F1A\u540C\u6837\u963B\u585E\u3002</p><p>ArrayBlockingQueue\u9ED8\u8BA4\u60C5\u51B5\u4E0B\u4E0D\u80FD\u4FDD\u8BC1\u7EBF\u7A0B\u8BBF\u95EE\u961F\u5217\u7684\u516C\u5E73\u6027\uFF0C\u6240\u8C13\u516C\u5E73\u6027\u662F\u6307\u4E25\u683C\u6309\u7167\u7EBF\u7A0B\u7B49\u5F85\u7684\u7EDD\u5BF9\u65F6\u95F4\u987A\u5E8F\uFF0C\u5373\u6700\u5148\u7B49\u5F85\u7684\u7EBF\u7A0B\u80FD\u591F\u6700\u5148\u8BBF\u95EE\u5230ArrayBlockingQueue\u3002\u800C\u975E\u516C\u5E73\u6027\u5219\u662F\u6307\u8BBF\u95EEArrayBlockingQueue\u7684\u987A\u5E8F\u4E0D\u662F\u9075\u5B88\u4E25\u683C\u7684\u65F6\u95F4\u987A\u5E8F\uFF0C\u6709\u53EF\u80FD\u5B58\u5728\uFF0C\u4E00\u65E6ArrayBlockingQueue\u53EF\u4EE5\u88AB\u8BBF\u95EE\u65F6\uFF0C\u957F\u65F6\u95F4\u963B\u585E\u7684\u7EBF\u7A0B\u4F9D\u7136\u65E0\u6CD5\u8BBF\u95EE\u5230ArrayBlockingQueue\u3002<strong>\u5982\u679C\u4FDD\u8BC1\u516C\u5E73\u6027\uFF0C\u901A\u5E38\u4F1A\u964D\u4F4E\u541E\u5410\u91CF</strong>\u3002\u5982\u679C\u9700\u8981\u83B7\u5F97\u516C\u5E73\u6027\u7684ArrayBlockingQueue\uFF0C\u53EF\u91C7\u7528\u5982\u4E0B\u4EE3\u7801\uFF1A</p><div class="language-java ext-java line-numbers-mode"><pre class="language-java"><code><span class="token keyword">private</span> <span class="token keyword">static</span> <span class="token class-name">ArrayBlockingQueue</span><span class="token generics"><span class="token punctuation">&lt;</span><span class="token class-name">Integer</span><span class="token punctuation">&gt;</span></span> blockingQueue <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ArrayBlockingQueue</span><span class="token generics"><span class="token punctuation">&lt;</span><span class="token class-name">Integer</span><span class="token punctuation">&gt;</span></span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">,</span><span class="token boolean">true</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
import{_ as t}from"./plugin-vue_export-helper.21dcd24c.js";import{r as p,o,c,a as n,b as a,e as l,d as e}from"./app.615e41d8.js";const i={},u=l(`<p>\u6700\u5E38\u7528\u7684&quot;<strong>\u751F\u4EA7\u8005-\u6D88\u8D39\u8005</strong>&quot;\u95EE\u9898\u4E2D\uFF0C\u961F\u5217\u901A\u5E38\u88AB\u89C6\u4F5C\u7EBF\u7A0B\u95F4\u64CD\u4F5C\u7684\u6570\u636E\u5BB9\u5668\uFF0C\u8FD9\u6837\uFF0C\u53EF\u4EE5\u5BF9\u5404\u4E2A\u6A21\u5757\u7684\u4E1A\u52A1\u529F\u80FD\u8FDB\u884C\u89E3\u8026\uFF0C\u751F\u4EA7\u8005\u5C06\u201C\u751F\u4EA7\u201D\u51FA\u6765\u7684\u6570\u636E\u653E\u7F6E\u5728\u6570\u636E\u5BB9\u5668\u4E2D\uFF0C\u800C\u6D88\u8D39\u8005\u4EC5\u4EC5\u53EA\u9700\u8981\u5728\u201C\u6570\u636E\u5BB9\u5668\u201D\u4E2D\u8FDB\u884C\u83B7\u53D6\u6570\u636E\u5373\u53EF\uFF0C\u8FD9\u6837\u751F\u4EA7\u8005\u7EBF\u7A0B\u548C\u6D88\u8D39\u8005\u7EBF\u7A0B\u5C31\u80FD\u591F\u8FDB\u884C\u89E3\u8026\uFF0C\u53EA\u4E13\u6CE8\u4E8E\u81EA\u5DF1\u7684\u4E1A\u52A1\u529F\u80FD\u5373\u53EF\u3002</p><p>\u963B\u585E\u961F\u5217\uFF08BlockingQueue\uFF09\u88AB\u5E7F\u6CDB\u4F7F\u7528\u5728\u201C\u751F\u4EA7\u8005-\u6D88\u8D39\u8005\u201D\u95EE\u9898\u4E2D\uFF0C\u5176\u539F\u56E0\u662FBlockingQueue\u63D0\u4F9B\u4E86\u53EF\u963B\u585E\u7684\u63D2\u5165\u548C\u79FB\u9664\u7684\u65B9\u6CD5\u3002<strong>\u5F53\u961F\u5217\u5BB9\u5668\u5DF2\u6EE1\uFF0C\u751F\u4EA7\u8005\u7EBF\u7A0B\u4F1A\u88AB\u963B\u585E\uFF0C\u76F4\u5230\u961F\u5217\u672A\u6EE1\uFF1B\u5F53\u961F\u5217\u5BB9\u5668\u4E3A\u7A7A\u65F6\uFF0C\u6D88\u8D39\u8005\u7EBF\u7A0B\u4F1A\u88AB\u963B\u585E\uFF0C\u76F4\u81F3\u961F\u5217\u975E\u7A7A\u65F6\u4E3A\u6B62</strong>\u3002</p><h2 id="\u57FA\u672C\u64CD\u4F5C" tabindex="-1"><a class="header-anchor" href="#\u57FA\u672C\u64CD\u4F5C" aria-hidden="true">#</a> \u57FA\u672C\u64CD\u4F5C</h2><p>BlockingQueue\u57FA\u672C\u64CD\u4F5C\u603B\u7ED3\u5982\u4E0B\uFF08\u6B64\u56FE\u6765\u6E90\u4E8EJAVA API\u6587\u6863\uFF09\uFF1A</p><p><img src="http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/thread/BlockingQueue-01.png" alt=""></p><p>BlockingQueue\u7EE7\u627F\u4E8EQueue\u63A5\u53E3\uFF0C\u56E0\u6B64\uFF0C\u5BF9\u6570\u636E\u5143\u7D20\u7684\u57FA\u672C\u64CD\u4F5C\u6709\uFF1A</p><p>1\uFF09\u63D2\u5165\u5143\u7D20</p><ol><li>add(E e) \uFF1A\u5F80\u961F\u5217\u63D2\u5165\u6570\u636E\uFF0C\u5F53\u961F\u5217\u6EE1\u65F6\uFF0C\u63D2\u5165\u5143\u7D20\u65F6\u4F1A\u629B\u51FAIllegalStateException\u5F02\u5E38\uFF1B</li><li>offer(E e)\uFF1A\u5F53\u5F80\u961F\u5217\u63D2\u5165\u6570\u636E\u65F6\uFF0C\u63D2\u5165\u6210\u529F\u8FD4\u56DE<code>true</code>\uFF0C\u5426\u5219\u5219\u8FD4\u56DE<code>false</code>\u3002\u5F53\u961F\u5217\u6EE1\u65F6\u4E0D\u4F1A\u629B\u51FA\u5F02\u5E38\uFF1B</li></ol><p>2\uFF09\u5220\u9664\u5143\u7D20</p><ol><li>remove(Object o)\uFF1A\u4ECE\u961F\u5217\u4E2D\u5220\u9664\u6570\u636E\uFF0C\u6210\u529F\u5219\u8FD4\u56DE<code>true</code>\uFF0C\u5426\u5219\u4E3A<code>false</code></li><li>poll\uFF1A\u5220\u9664\u6570\u636E\uFF0C\u5F53\u961F\u5217\u4E3A\u7A7A\u65F6\uFF0C\u8FD4\u56DEnull\uFF1B</li></ol><p>3\uFF09\u67E5\u770B\u5143\u7D20</p><ol><li>element\uFF1A\u83B7\u53D6\u961F\u5934\u5143\u7D20\uFF0C\u5982\u679C\u961F\u5217\u4E3A\u7A7A\u65F6\u5219\u629B\u51FANoSuchElementException\u5F02\u5E38\uFF1B</li><li>peek\uFF1A\u83B7\u53D6\u961F\u5934\u5143\u7D20\uFF0C\u5982\u679C\u961F\u5217\u4E3A\u7A7A\u5219\u629B\u51FANoSuchElementException\u5F02\u5E38</li></ol><p>BlockingQueue\u5177\u6709\u7684\u7279\u6B8A\u64CD\u4F5C\uFF1A</p><p>1\uFF09\u63D2\u5165\u6570\u636E\uFF1A</p><ol><li>put\uFF1A\u5F53\u963B\u585E\u961F\u5217\u5BB9\u91CF\u5DF2\u7ECF\u6EE1\u65F6\uFF0C\u5F80\u963B\u585E\u961F\u5217\u63D2\u5165\u6570\u636E\u7684\u7EBF\u7A0B\u4F1A\u88AB\u963B\u585E\uFF0C\u76F4\u81F3\u963B\u585E\u961F\u5217\u5DF2\u7ECF\u6709\u7A7A\u4F59\u7684\u5BB9\u91CF\u53EF\u4F9B\u4F7F\u7528\uFF1B</li><li><code>offer(E e, long timeout, TimeUnit unit)</code>\uFF1A\u82E5\u963B\u585E\u961F\u5217\u5DF2\u7ECF\u6EE1\u65F6\uFF0C\u540C\u6837\u4F1A\u963B\u585E\u63D2\u5165\u6570\u636E\u7684\u7EBF\u7A0B\uFF0C\u76F4\u81F3\u963B\u585E\u961F\u5217\u5DF2\u7ECF\u6709\u7A7A\u4F59\u7684\u5730\u65B9\uFF0C\u4E0Eput\u65B9\u6CD5\u4E0D\u540C\u7684\u662F\uFF0C\u8BE5\u65B9\u6CD5\u4F1A\u6709\u4E00\u4E2A\u8D85\u65F6\u65F6\u95F4\uFF0C\u82E5\u8D85\u8FC7\u5F53\u524D\u7ED9\u5B9A\u7684\u8D85\u65F6\u65F6\u95F4\uFF0C\u63D2\u5165\u6570\u636E\u7684\u7EBF\u7A0B\u4F1A\u9000\u51FA\uFF1B</li></ol><p>2\uFF09\u5220\u9664\u6570\u636E</p><ol><li><code>take()</code>\uFF1A\u5F53\u963B\u585E\u961F\u5217\u4E3A\u7A7A\u65F6\uFF0C\u83B7\u53D6\u961F\u5934\u6570\u636E\u7684\u7EBF\u7A0B\u4F1A\u88AB\u963B\u585E\uFF1B</li><li><code>poll(long timeout, TimeUnit unit)</code>\uFF1A\u5F53\u963B\u585E\u961F\u5217\u4E3A\u7A7A\u65F6\uFF0C\u83B7\u53D6\u6570\u636E\u7684\u7EBF\u7A0B\u4F1A\u88AB\u963B\u585E\uFF0C\u53E6\u5916\uFF0C\u5982\u679C\u88AB\u963B\u585E\u7684\u7EBF\u7A0B\u8D85\u8FC7\u4E86\u7ED9\u5B9A\u7684\u65F6\u957F\uFF0C\u8BE5\u7EBF\u7A0B\u4F1A\u9000\u51FA</li></ol><h2 id="\u5E38\u7528\u7684blockingqueue" tabindex="-1"><a class="header-anchor" href="#\u5E38\u7528\u7684blockingqueue" aria-hidden="true">#</a> \u5E38\u7528\u7684BlockingQueue</h2><p>\u5B9E\u73B0BlockingQueue\u63A5\u53E3\u7684\u6709<code>ArrayBlockingQueue, DelayQueue, LinkedBlockingDeque, LinkedBlockingQueue, LinkedTransferQueue, PriorityBlockingQueue, SynchronousQueue</code>\uFF0C\u800C\u8FD9\u51E0\u79CD\u5E38\u89C1\u7684\u963B\u585E\u961F\u5217\u4E5F\u662F\u5728\u5B9E\u9645\u7F16\u7A0B\u4E2D\u4F1A\u5E38\u7528\u7684\uFF0C\u4E0B\u9762\u5BF9\u8FD9\u51E0\u79CD\u5E38\u89C1\u7684\u963B\u585E\u961F\u5217\u8FDB\u884C\u8BF4\u660E\uFF1A</p><h3 id="arrayblockingqueue" tabindex="-1"><a class="header-anchor" href="#arrayblockingqueue" aria-hidden="true">#</a> ArrayBlockingQueue</h3><p><strong>ArrayBlockingQueue</strong>\u662F\u7531\u6570\u7EC4\u5B9E\u73B0\u7684\u6709\u754C\u963B\u585E\u961F\u5217\u3002\u8BE5\u961F\u5217\u547D\u4EE4\u5143\u7D20FIFO\uFF08\u5148\u8FDB\u5148\u51FA\uFF09\u3002\u56E0\u6B64\uFF0C\u5BF9\u5934\u5143\u7D20\u65F6\u961F\u5217\u4E2D\u5B58\u5728\u65F6\u95F4\u6700\u957F\u7684\u6570\u636E\u5143\u7D20\uFF0C\u800C\u5BF9\u5C3E\u6570\u636E\u5219\u662F\u5F53\u524D\u961F\u5217\u6700\u65B0\u7684\u6570\u636E\u5143\u7D20\u3002ArrayBlockingQueue\u53EF\u4F5C\u4E3A\u201C\u6709\u754C\u6570\u636E\u7F13\u51B2\u533A\u201D\uFF0C\u751F\u4EA7\u8005\u63D2\u5165\u6570\u636E\u5230\u961F\u5217\u5BB9\u5668\u4E2D\uFF0C\u5E76\u7531\u6D88\u8D39\u8005\u63D0\u53D6\u3002ArrayBlockingQueue\u4E00\u65E6\u521B\u5EFA\uFF0C\u5BB9\u91CF\u4E0D\u80FD\u6539\u53D8\u3002</p><p>\u5F53\u961F\u5217\u5BB9\u91CF\u6EE1\u65F6\uFF0C\u5C1D\u8BD5\u5C06\u5143\u7D20\u653E\u5165\u961F\u5217\u5C06\u5BFC\u81F4\u64CD\u4F5C\u963B\u585E;\u5C1D\u8BD5\u4ECE\u4E00\u4E2A\u7A7A\u961F\u5217\u4E2D\u53D6\u4E00\u4E2A\u5143\u7D20\u4E5F\u4F1A\u540C\u6837\u963B\u585E\u3002</p><p>ArrayBlockingQueue\u9ED8\u8BA4\u60C5\u51B5\u4E0B\u4E0D\u80FD\u4FDD\u8BC1\u7EBF\u7A0B\u8BBF\u95EE\u961F\u5217\u7684\u516C\u5E73\u6027\uFF0C\u6240\u8C13\u516C\u5E73\u6027\u662F\u6307\u4E25\u683C\u6309\u7167\u7EBF\u7A0B\u7B49\u5F85\u7684\u7EDD\u5BF9\u65F6\u95F4\u987A\u5E8F\uFF0C\u5373\u6700\u5148\u7B49\u5F85\u7684\u7EBF\u7A0B\u80FD\u591F\u6700\u5148\u8BBF\u95EE\u5230ArrayBlockingQueue\u3002\u800C\u975E\u516C\u5E73\u6027\u5219\u662F\u6307\u8BBF\u95EEArrayBlockingQueue\u7684\u987A\u5E8F\u4E0D\u662F\u9075\u5B88\u4E25\u683C\u7684\u65F6\u95F4\u987A\u5E8F\uFF0C\u6709\u53EF\u80FD\u5B58\u5728\uFF0C\u4E00\u65E6ArrayBlockingQueue\u53EF\u4EE5\u88AB\u8BBF\u95EE\u65F6\uFF0C\u957F\u65F6\u95F4\u963B\u585E\u7684\u7EBF\u7A0B\u4F9D\u7136\u65E0\u6CD5\u8BBF\u95EE\u5230ArrayBlockingQueue\u3002<strong>\u5982\u679C\u4FDD\u8BC1\u516C\u5E73\u6027\uFF0C\u901A\u5E38\u4F1A\u964D\u4F4E\u541E\u5410\u91CF</strong>\u3002\u5982\u679C\u9700\u8981\u83B7\u5F97\u516C\u5E73\u6027\u7684ArrayBlockingQueue\uFF0C\u53EF\u91C7\u7528\u5982\u4E0B\u4EE3\u7801\uFF1A</p><div class="language-java ext-java line-numbers-mode"><pre class="language-java"><code><span class="token keyword">private</span> <span class="token keyword">static</span> <span class="token class-name">ArrayBlockingQueue</span><span class="token generics"><span class="token punctuation">&lt;</span><span class="token class-name">Integer</span><span class="token punctuation">&gt;</span></span> blockingQueue <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ArrayBlockingQueue</span><span class="token generics"><span class="token punctuation">&lt;</span><span class="token class-name">Integer</span><span class="token punctuation">&gt;</span></span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">,</span><span class="token boolean">true</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>ArrayBlockingQueue\u7684\u4E3B\u8981\u5C5E\u6027\u5982\u4E0B:</p><div class="language-java ext-java line-numbers-mode"><pre class="language-java"><code><span class="token doc-comment comment">/** The queued items */</span>
<span class="token keyword">final</span> <span class="token class-name">Object</span><span class="token punctuation">[</span><span class="token punctuation">]</span> items<span class="token punctuation">;</span>
......
import{f as m,h as e,T as i,m as u,g as p,n as d,p as c,q as f,r,s as v,t as g}from"./app.a0271b9c.js";import{S as h}from"./SkipLink.e761490e.js";var b=m({name:"FadeSlideY",setup(s,{slots:a}){const o=u(),t=o.resolve,l=o.pending;return()=>e(i,{name:"fade-slide-y",mode:"out-in",onBeforeEnter:t,onBeforeLeave:l},()=>{var n;return(n=a.default)==null?void 0:n.call(a)})}}),L=m({name:"Layout",setup(){const s=g(),a=p(),o=v(),t=d();return c(),f(()=>a.value.blog.sidebarDisplay||s.value.blog.sidebarDisplay||"mobile"),()=>[e(h),e(r("CommonWrapper"),{},{default:()=>t.value.home?e(r("HomePage")):e(b,()=>e(r("NormalPage"),{key:o.value.path}))})]}});export{L as default};
import{f as m,h as e,T as i,m as u,g as p,n as d,p as c,q as f,r,s as v,t as g}from"./app.615e41d8.js";import{S as h}from"./SkipLink.a2c3a90f.js";var b=m({name:"FadeSlideY",setup(s,{slots:a}){const o=u(),t=o.resolve,l=o.pending;return()=>e(i,{name:"fade-slide-y",mode:"out-in",onBeforeEnter:t,onBeforeLeave:l},()=>{var n;return(n=a.default)==null?void 0:n.call(a)})}}),L=m({name:"Layout",setup(){const s=g(),a=p(),o=v(),t=d();return c(),f(()=>a.value.blog.sidebarDisplay||s.value.blog.sidebarDisplay||"mobile"),()=>[e(h),e(r("CommonWrapper"),{},{default:()=>t.value.home?e(r("HomePage")):e(b,()=>e(r("NormalPage"),{key:o.value.path}))})]}});export{L as default};
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册