File was renamed from doc/»ùÓÚ¹²ÏíÄÚ´æµÄÉú²úÕßÏû·ÑÕßģʽµÄÎÞËø¶ÓÁеÄÉè¼Æ·½°¸.md |
| | |
| | | # åºäºå
±äº«å
åçç产è
æ¶è´¹è
模å¼çæ ééåçå®ç° |
| | | # Bus è®¾è®¡æ¹æ¡ |
| | | |
| | | ## 1 æ´ä½è®¾è®¡ |
| | | ## 1 ä¸å±ä¸å¡é»è¾è®¾è®¡ |
| | | |
| | | ### 1.1 Bus设计 |
| | | |
| | | ### 1.1 æ»çæµç¨å¦ä¸ï¼ |
| | | |
| | |  |
| | | |
| | | ä¸é¢è¿å¼ 示æå¾æ¯è¯´è®¢é
newsçClientæAåBï¼è®¢é
sportsçæBåCï¼è¿äºé½å¨æ»çº¿éè®°å½çãå½Aåæ»çº¿pubå主é¢sportsç¸å
³çå
容æ¶ï¼BåCä¼éè¿æ»çº¿æ¶å°è¿ä¸ªä¸»é¢çæ¶æ¯ã |
| | | |
| | | ### 1.2 NetProxyService设计 |
| | | |
| | | |
| | |  |
| | | |
| | | ä¸é¢è¿å¼ å¾è·¨æºå¨è¯·æ±åºçç示æå¾ãè¿å¼ 示æå¾æ¶è¯´å½èç¹Aåèç¹Bçkey 1001éååkey 1002éååéæ¶æ¯æ¶ï¼å®ä¼é¦å
åéå°èç¹Bçç½ç»ä»£çserverä¸ãç½ç»ä»£çserverä¼æè¯·æ±æ¶æ¯è½¬åå°ç¸åºçéåä¸ï¼å¹¶æ¥ååºçè¿åç»èç¹Aã |
| | | |
| | | åçè·¨æºå¨çåå¸è®¢é
乿¯éè¿è¿æ ·çæ¹å¼äº¤äºçã |
| | | |
| | | |
| | | ## 2 æ¶æ¯éå设计 |
| | | ### 2.1 æ»çæµç¨å¦ä¸ï¼ |
| | | |
| | | |
| | | 1. å
¥éæä½ï¼éååå
å管çå¨ç³è¯·ä¸åå
åï¼å
å管çå¨ä»å
åçèªç±åé
åºåé
ä¸åå
åè¿åç»éåã |
| | | 2. åºéæä½ï¼éååå
å管çå¨åå»éæ¾å
åç请æ±ï¼å
å管çå¨éæ¾è¯¥å
åå以ä¾ä¸æ¬¡ä½¿ç¨ã |
| | | |
| | | ### 1.2 å
±äº«å
åççåå |
| | | Queue对象å
é¨è®°å½äºéå头åéåå°¾çä½ç½®ï¼éè¿å®ä»¬èªç¶å¯ä»¥æ¾å°æ¯ä¸ªéåèç¹çä½ç½®ã使¯Queue对象èªå·±ä¹å¨å
±äº«å
åéé¢ï¼ç¬¬ä¸ä¸ªå建Queue对象çè¿ç¨èªç¶ç¥éQueue对象çä½ç½®ï¼ä½æ¯å¿
须让å
¶ä»çè¿ç¨ä¹ç¥éQueue对象çä½ç½®ï¼æä»¥å°±çº¦å®ä¸ä¸ªè§åæQueue对象æ¾å¨ä¸ä¸ªå¤§å®¶é½ç¥éçä½ç½®ï¼è¿ééæ©äºå
±äº«å
åçèµ·å§ä½ç½®ãå
å管çå¨ä¸ä¼å¯¹è¿ååºåè¿è¡æä½ï¼å¨æ¤ä¹åçé£åå
åèªç±åé
åºææ¯å
å管çå¨ç®¡ççåºåãå¦ä¸å¾ï¼ |
| | |  |
| | | |
| | | |
| | |  |
| | | |
| | | ## 2 æ ééåï¼Free Lockï¼çå®ç° |
| | | ### 2.2 æ ééåï¼Free Lockï¼çå®ç° |
| | | æ éé忝ç¨ç»ç²åº¦çååéå®ç°çï¼å¤è¿ç¨æä½æ¶æ é»å¡å¹¶åæ§è½é«ãç½ä¸æäºè±å
«é¨çç¸å
³ç®æ³å®ç°ãæå¯¹æ¯äºä¸ä¸ï¼å³å®éç¨ä¸é¢çè¿ä¸ªãè¿ä¸ªç®æ³æ§è½å¥½æ¯ä¸æ¹é¢ï¼å®åæ¶ä¹è§£å³äºéå为空æ¶å¹¶åæä½å¯è½åºç°çé®é¢ï¼ä»¥åABAçé®é¢ã |
| | | |
| | |  |
| | | |
| | | ## 3 ç产è
æ¶è´¹è
ä¹é´çåä½ |
| | | ### 2.3 æ¶æ¯éåçç产è
æ¶è´¹è
æ¨¡å¼ |
| | | |
| | | > 以ä¸è¯´æä¸å
æ¬æ çå¾
åè¶
æ¶çæ
åµ |
| | | |
| | | |
| | | ç产è
æ¶è´¹è
ä¹é´çç¸äºå使¶éè¿ä¿¡å·å®ç°çï¼ä¿¡å·éslots代表éå空é²çæ°éï¼ä¿¡å·éitems代表已æå
¥éåçæ°éãéååå§åæ¶ï¼slotsçäºéåçæå¤§é¿åº¦ï¼itemsçäº0ãå
¥éæ¶slotsåä¸ï¼itemså 1ãåºéæ¶itemsåä¸ï¼slotså 1ãéå已满æ¶slotsçéå¿
ç¶çäº0ï¼ç产è
è¿å
¥çå¸¦ç¶æï¼æç©ºé²ä½ç½®çæ¶å伿¢å¤æ§è¡ãéå为空æ¶itemsçéå¿
ç¶ä¸º0,æ¶è´¹è
è¿å
¥çå¾
ç¶æï¼ææ°æåå
¥éçæ¶å伿¢å¤æ§è¡ãå
·ä½åä½å
³ç³»å¦ä¸å¾ï¼ |
| | |  |
| | |  |
| | | |
| | | |
| | | ## 4 å
å管çå¨ |
| | | |
| | | ## 3 å
±äº«å
åçå
å管çå¨è®¾è®¡ |
| | | |
| | | |
| | | è¦å®ç°å¯¹å
åç管çï¼å°±è¦è®°å½æ¯ä¸ªå·²åé
åå空é²åçä¿¡æ¯ãè¿äºä¿¡æ¯å°±è®°å½å¨æ¯ä¸ªåç头é¨åå°¾é¨ãè¿äºä¿¡æ¯å
æ¬åç大å°ï¼Block sizeï¼, æ¯å¦å·²åé
ï¼a表示已åé
ï¼f表示空é²ï¼ï¼å
¶ä¸ç©ºé²åæ¯å·²åé
åè¿å¤äºä¸¤ä¸ªä¿¡æ¯ï¼å驱èç¹æépredecessor, åç»§èç¹æésuccessorï¼ï¼å嫿ååä¸ä¸ªååä¸ä¸ªç©ºé²åçæéãå¦ä¸å¾ï¼ |
| | | |