Skip to content

Latest commit

ย 

History

History
46 lines (42 loc) ยท 1.44 KB

File metadata and controls

46 lines (42 loc) ยท 1.44 KB

Thread-safe data structure

Thread-safe ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ | ็บฟ็จ‹ๅฎ‰ๅ…จ็š„ๆ•ฐๆฎ็ป“ๆž„

Table of Contents

Types

์—ฌ๋Ÿฌ๊ฐœ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ์ ‘๊ทผํ•ด๋„ ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ์ข…๋ฅ˜.

  1. Concurrent data structures

    ๋™์‹œ์„ฑ ์ž๋ฃŒ๊ตฌ์กฐ ๅนถๅ‘ๆ•ฐๆฎ็ป“ๆž„

    ์—ฌ๋Ÿฌ๊ฐœ์˜ ์Šค๋ ˆ๋“œ์—์„œ ๋™์‹œ์— ์ ‘๊ทผํ•ด๋„ ์•ˆ์ „ํ•˜๊ฒŒ ๋„์ฐฉ.

    • e.g.
      • ConcurrentHashMap
        • ๋™๊ธฐํ™”๋œ ๋ฒ„ํ‚ท ๋ถ„ํ• ๋ฐฉ์‹์„ ์‚ฌ์šฉ, ๊ฒฝํ•ฉ์„ ์ค„์ž„.
      • ConcurrentLinkedQueue
        • ์›์ž์  ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•˜์—ฌ Queue ์— ์•„์ดํ…œ์„ ์ถ”๊ฐ€/์‚ญ์ œ.
      • ConcurrentSkipListMap
  2. Synchroinized data structures

    ๋™๊ธฐํ™” ์ž๋ฃŒ๊ตฌ์กฐ ๅŒๆญฅๆ•ฐๆฎ็ป“ๆž„

    • e.g.
      • Synchronized lists
      • Synchronized stacks
      • Synchronized queues
  3. Immutable data structures

    ๋ถˆ๋ณ€ ์ž๋ฃŒ๊ตฌ์กฐ ไธๅฏๅ˜ๆ•ฐๆฎ็ป“ๆž„

    • e.g.
      • ImmutableMap
        • ํ•œ๋ฒˆ ์ƒ์„ฑ๋˜๋ฉด key-value ๊ฐ’ ๋ณ€๊ฒฝ X.
      • ImmutableList
        • ์›์†Œ ์ถ”๊ฐ€, ์ œ๊ฑฐ, ๋ณ€๊ฒฝ X.
        • read ์ž‘์—…์ด ๋งŽ์€ ์ƒํ™ฉ์— ์œ ์šฉ.
  4. Lock-free data structures

    • e.g.
      • Lock-free stacks
      • Lock-free queue
  5. Wait-free data structures

    • e.g.
      • Wait-free stacks
        • lock ๊ธฐ๋‹ค๋ฆผ ์—†์ด stack ์— ์ ‘๊ทผํ•˜์—ฌ push/pop ์—ฐ์‚ฐ ์ˆ˜ํ–‰.
        • ์œ„ํ—˜์„ฑ:
          • ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜
          • ์šฐ์„ ์ˆœ์œ„ ์—ญ์ „
          • ์ฒ˜๋ฆฌ๋Ÿ‰ ๊ฐ์†Œ
      • Wait-free queue