¸ð´ø C++·Î ¹è¿ì´Â µ¿½Ã¼º ÇÁ·Î±×·¡¹Ö
- ÀúÀÚ<¶óÀÌ³Ê ±×¸²> Àú/<¹èÀå¿> ¿ª
- ÃâÆÇ»çÁ¦ÀÌÆà
- ÃâÆÇÀÏ2020-09-03
- µî·ÏÀÏ2021-05-24
º¸À¯ 1, ´ëÃâ 0,
¿¹¾à 0, ´©Àû´ëÃâ 10, ´©Àû¿¹¾à 1
Ã¥¼Ò°³
C++ ÇÁ·Î±×·¡¸Ó¶ó¸é ¹Ýµå½Ã ¾Ë¾Æ¾ß ÇÒ µ¿½Ã¼ºÀÇ ¸ðµç °Í!C++ µ¿½Ã¼º ÇÁ·Î±×·¡¹ÖÀ» ¸¶½ºÅÍÇÒ ¼ö ÀÖ´Â ½Ç¿ëÀû ¾È³»¼!ÀÌ Ã¥Àº C++ µ¿½Ã¼ºÀÇ ÇöÀç¿Í ¹Ì·¡¸¦ ŽÇèÇÏ´Â ¿©Çà °¡À̵å´Ù. ¸ð´ø C++ÀÇ µ¿½Ã¼º À̾߱⸦ ¼ö¸¹Àº ¿¹Á¦ ÄÚµå¿Í ÇÔ²² ±íÀÌ ÀÖ°Ô Ç®¾î³ÂÀ¸¸ç, À̸¦ ÅëÇØ ¿©·¯ºÐÀº À̷аú ½ÇÁ¦¸¦ ±ÕÇü ÀÖ°Ô ½ÀµæÇÔÀ¸·Î½á ÃÖ´ëÀÇ È¿°ú¸¦ °ÅµÑ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¾î·Á¿î ÁÖÁ¦·Î ÀνĵǴ µ¿½Ã¼ºÀ» ´Ù·ç´Â ¸¸Å °ï¶õÇÑ ¹®Á¦µé°ú ±× ÇØ°á ¹æ¹ýµµ ÇÔ²² Á¦½ÃÇÑ´Ù.C++11°ú C++14Àº µ¿½ÃÀûÀÌ°í º´·ÄÀûÀÎ ÇÁ·Î±×·¥À» ¸¸µé±â À§ÇÑ ±âº» ºôµù ºí·ÏÀ» °®Ãè´Ù. C++17¿¡¼´Â Ç¥ÁØ ÅÛÇø´ ¶óÀ̺귯¸®(STL)ÀÇ º´·Ä ¾Ë°í¸®ÁòÀ» Áö¿øÇÑ´Ù. ´Ù½Ã ¸»ÇØ, STL ±â¹Ý ¾Ë°í¸®ÁòÀº ´ëºÎºÐ ¼øÂ÷ÀûÀ¸·Î³ª º´·ÄÀûÀ¸·Î ¶Ç´Â º¤ÅÍÈ ¹æ½ÄÀ¸·Î ½ÇÇàµÉ ¼ö ÀÖ´Ù. C++ÀÇ µ¿½Ã¼º À̾߱â´Â ÇöÀç ÁøÇàÇüÀÌ´Ù. C++20¿¡´Â È®Àå ǻó¿Í ÄÚ·çƾ, Æ®·£Àè¼Ç µîÀÌ ´ã±æ °ÍÀ¸·Î ¿¹»óµÈ´Ù.
ÀúÀÚ¼Ò°³
ÆÀ ¸®´õ¿Í °»ç·Î 20³â ³Ñ°Ô ±Ù¹«ÇÑ º£Å׶û ¼ÒÇÁÆ®¿þ¾î ¾ÆÅ°ÅØÆ®´Ù. ½Ã°£ÀÌ ³¯ ¶§¸é C++, ÆÄÀ̽ã, ÇϽºÄÌ °°Àº ÁÖÁ¦ÀÇ ±â»ç¸¦ Áñ°Ü Àаí, ÄÜÆÛ·±½º¿¡µµ ÀÚÁÖ Âü°¡ÇÑ´Ù. 2016³âºÎÅʹ ȸ»ç¸¦ ³ª¿Í ¸ð´ø C++¿Í ÆÄÀ̽ãÀ» ÁÖÁ¦·Î ÇÏ´Â ¼¼¹Ì³ª¸¦ Á¶Á÷ÇÏ¿© Áö±Ý±îÁö À̲ø°í ÀÖ´Ù.
¸ñÂ÷
PART I ¼·Ð _ 1CHAPTER 1 ¸ð´ø C++ÀÇ µ¿½Ã¼º 3C++11°ú C++14: Åä´ë 4¸Þ¸ð¸® ¸ðµ¨ 4¸ÖƼ½º·¹µù 5»ç·Ê ¿¬±¸ 7º¤ÅÍÀÇ ÇÕ °è»êÇϱâ 7½Ì±ÛÅÏÀÇ ½º·¹µå ¾ÈÀüÇÑ ÃʱâÈ 7CppMemÀÇ ¿¬¼Ó ÃÖÀûÈ 7C++17: Ç¥ÁØ ÅÛÇø´ ¶óÀ̺귯¸®ÀÇ º´·Ä ¾Ë°í¸®Áò 8½ÇÇà Á¤Ã¥ 8»õ ¾Ë°í¸®Áòµé 8C++20: µ¿½Ã¼º ǻó 9¿øÀÚ°è ½º¸¶Æ® Æ÷ÀÎÅÍ 9È®Àå ǻó 10·¡Ä¡¿Í À庮 10ÄÚ·çƾ 10Æ®·£Àè¼Ç ¸Þ¸ð¸® 10ŽºÅ© ºí·Ï 11µµÀü 11º£½ºÆ® ÇÁ·¢Æ¼½º 11time ¶óÀ̺귯¸® 12¿ë¾î 12PART II º»·Ð _ 13CHAPTER 2 ¸Þ¸ð¸® ¸ðµ¨ 15°è¾à 16±â¹Ý 17µµÀü 18¿øÀÚ°è 19²Ä²ÄÇÑ ¸Þ¸ð¸® ¸ðµ¨ vs Çã¼úÇÑ ¸Þ¸ð¸® ¸ðµ¨ 19¿øÀÚ°è Ç÷¡±× 22Ŭ·¡½º ÅÛÇø´ std::atomic 27»ç¿ëÀÚ Á¤ÀÇ ¿øÀÚ°è 34¿øÀÚ°è ¿¬»êµé 35¿øÀÚ°è ÀÚÀ¯ ÇÔ¼öµé 36µ¿±âÈ ¹× ¼ø¼»ó Á¦¾à Á¶°Ç 39C++ÀÇ ¿©¼¸ °¡Áö ¸Þ¸ð¸® ¸ðµ¨ 39½ÃÄö½º ÀÏ°ü¼º 41acquire-release ½Ã¸Çƽ 44std::memory_order_consume 53Æí¾ÈÇÑ ½Ã¸Çƽ 57´ãÀå 60¸Þ¸ð¸® À庮À¸·Î¼ÀÇ ´ãÀå 60¼¼ °¡Áö ´ãÀå 60acquire ´ãÀå°ú release ´ãÀå 63¿øÀÚ°è º¯¼öÀÇ µ¿±âÈ¿Í ´ãÀåÀÇ µ¿±âÈ 65CHAPTER 3 ¸ÖƼ½º·¹µù 71½º·¹µå 72»ý¼º 72¶óÀÌÇÁ»çÀÌŬ 73Àμö 76¸Þ¼µå 80°øÀ¯ µ¥ÀÌÅÍ 83¹ÂÅؽº 85Àá±è 90½º·¹µå ¾ÈÀüÇÑ ÃʱâÈ 100½º·¹µå ·ÎÄà µ¥ÀÌÅÍ 106Á¶°Ç º¯¼ö 108wait ÀÛ¾÷ È帧 110»ç¶óÁø ±ú¿ì±â¿Í °¡Â¥ ±ú¿ì±â 112ŽºÅ© 112½º·¹µå¿Í ŽºÅ© 113std::async 115std::packaged_task 120std::promise¿Í std::future 124CHAPTER 4 »ç·Ê ¿¬±¸ 135º¤ÅÍÀÇ ÇÕ °è»êÇϱâ 136º¤ÅÍÀÇ ½Ì±Û½º·¹µù µ¡¼À 137°øÀ¯ º¯¼öÀÇ ¸ÖƼ½º·¹µù ÇÕ 143½º·¹µå ·ÎÄà ÇÕ 148º¤ÅÍÀÇ ÇÕ: °á·Ð 157½Ì±ÛÅÏÀÇ ½º·¹µå ¾ÈÀüÇÑ ÃʱâÈ 158Àá±è ÆÐÅÏÀÇ ÀÌÁß È®ÀÎ 159¼º´É ÃøÁ¤ 160½º·¹µå ¾ÈÀüÇÑ ¸¶À̾ ½Ì±ÛÅÏ 163std::once_flag¿Í °áÇÕµÈ std::call_once 166¿øÀÚ°è 167½º·¹µå ¾ÈÀüÇÑ ½Ì±ÛÅÏ ±¸ÇöÀÇ ¼º´É ¼öÄ¡µé 170CppMem ¿¬¼Ó ÃÖÀûÈ 171CppMem °³¿ä 172CppMem: ºñ¿øÀÚ°è º¯¼ö 176CppMem: Àá±è 180CppMem: ½ÃÄö½º ÀÏ°ü¼º ¿øÀÚ°è 182CppMem: acquire-release ½Ã¸Çƽ ¿øÀÚ°è 187CppMem: ºñ¿øÀÚ°è°¡ Àû¿ëµÈ ¿øÀÚ°è 190CppMem: Æí¾ÈÇÑ ½Ã¸Çƽ ¿øÀÚ°è 192°á·Ð 194CHAPTER 5 Ç¥ÁØ ÅÛÇø´ ¶óÀ̺귯¸®ÀÇ º´·Ä ¾Ë°í¸®Áò 195½ÇÇà Á¤Ã¥ 196¾Ë°í¸®Áò 198»õ ¾Ë°í¸®Áòµé 199ÇÔ¼öÇü À¯»ê 203CHAPTER 6 ¹Ì·¡: C++20 205¿øÀÚ°è ½º¸¶Æ® Æ÷ÀÎÅÍ 206½º·¹µå ¾ÈÀüÇÑ ´ÜÀÏ ¿¬°á ¸®½ºÆ® 207È®Àå ǻó 208std::future 208std::async, std::packaged_task, std::promise 210»õ ǻó »ý¼ºÇϱâ 210·¡Ä¡¿Í À庮 213std::latch 214std::barrier 214std::flex_barrier 216ÄÚ·çƾ 217Á¦³Ê·¹ÀÌÅÍ ÇÔ¼ö 218¼¼ºÎ ³»¿ë 221Æ®·£Àè¼Ç ¸Þ¸ð¸® 223ACI(D) 224µ¿±âÈ ºí·Ï°ú ¿øÀÚ°è ºí·Ï 224transaction_safe ÄÚµå¿Í transaction_unsafe ÄÚµå 228ŽºÅ© ºí·Ï 229fork¿Í join 229define_task_block°ú define_task_block_restore_thread 231ÀÎÅÍÆäÀ̽º 231½ºÄÉÁÙ·¯ 232PART III ½ÉÈ _ 233CHAPTER 7 µµÀü 235ABA 236ºñÀ¯ 236ºñÀÓ°è ABA 237Àá±è ¾ø´Â µ¥ÀÌÅÍ ±¸Á¶ 237ABA ¹®Á¦ 238ÇØ°áÃ¥ 239ºí·ÎÅ· ¹®Á¦ 241ÇÁ·Î±×·¥ ºÒº¯½Ä ±ú±â 243µ¥ÀÌÅÍ °æÀï 244°¡Â¥ °øÀ¯ 246º¯¼öÀÇ ¶óÀÌÇÁ»çÀÌŬ ¹®Á¦ 246¿òÁ÷ÀÌ´Â ½º·¹µå 247±³Âø»óÅ 249°æÀï »óÅ 250CHAPTER 8 º£½ºÆ® ÇÁ·¢Æ¼½º 251°³°ý 252ÄÚµå ¸®ºä 252º¯Çü °¡´ÉÇÑ µ¥ÀÌÅÍÀÇ µ¥ÀÌÅÍ °øÀ¯¸¦ ÃÖ¼ÒÈÇ϶ó 252´ë±â¸¦ ÃÖ¼ÒÈÇ϶ó 253º¯Çü ºÒ°¡´ÉÇÑ µ¥ÀÌÅ͸¦ ¸ÕÀú »ç¿ëÇ϶ó 253¿Ã¹Ù¸¥ Ãß»óȸ¦ ã¾Æ¶ó 253Á¤Àû ÄÚµå ºÐ¼® µµ±¸¸¦ »ç¿ëÇ϶ó 254µ¿Àû °È µµ±¸¸¦ »ç¿ëÇ϶ó 254¸Þ¸ð¸® ¸ðµ¨ 255µ¿±âÈ¿¡ volatileÀ» »ç¿ëÇÏÁö ¸¶¶ó 255Àá±è ¾ø´Â ÇÁ·Î±×·¥À» ¸¸µéÁö ¸¶¶ó 256Àá±è ¾ø´Â ÇÁ·Î±×·¥ÀÌ ºÒ°¡ÇÇÇÒ ¶§´Â Àß Á¤¸³µÈ ÆÐÅÏÀ» »ç¿ëÇ϶ó 256ÀڽŸ¸ÀÇ Ãß»óȸ¦ ¸¸µéÁö ¸»°í ¾ð¾î°¡ Á¦°øÇÏ´Â º¸ÀåÀ» »ç¿ëÇ϶ó 256¸ÖƼ½º·¹µù 257½º·¹µå 257µ¥ÀÌÅÍ °øÀ¯ 259Á¶°Ç º¯¼ö 262ÇÁ·Î¹Ì½º¿Í ǻó 265CHAPTER 9 time ¶óÀ̺귯¸® 267½ÃÁ¡°ú ±â°£, Ŭ·ÏÀÇ »óÈ£ÀÛ¿ë 268½ÃÁ¡ 269½ÃÁ¡¿¡¼ Ķ¸°´õ ½Ã°£±îÁö 269À¯È¿ÇÑ ½Ã°£ ¹üÀ§¸¦ ³Ñ¾î 271±â°£ 272°è»ê 274Ŭ·Ï 276Á¤È®µµ¿Í °íÁ¤¼º 277¿¡Æ÷Å© 279ÀáÀÚ±â¿Í ±â´Ù¸®±â 281°ü½À 281´Ù¾çÇÑ ±â´Ù¸®±â Àü·« 282CHAPTER 10 ¿ë¾î 287ã¾Æº¸±â 295