👨‍💻
Software Engineering
Clean Code: Agile Software Craftsmanship
Clean Code: Agile Software Craftsmanship
  • Clean Code
  • 1: Clean Code
    • There Will Be Code
    • Bad Code
    • The Total Cost of Owning a Mess
    • Schools of Thought
    • We are Authors
    • The Boy Scout Rule
    • Prequel and Principles
    • Conclusion
  • 2: Meaningful Names
  • 3: Functions
  • 4: Comments
  • 5: Formatting
  • 6: Objects and Data Structures
  • 7: Error Handling
  • 8: Boundaries
  • 9: Unit tests
  • 10: Classes
  • 12: Emergence
  • 13: Concurrency
    • Why Concurrency?
    • Challenges
    • Concurrency Defense Principles
    • Know Your Library
    • Know Your Execution Models
    • Beware Dependencies between Synchronized Methods
    • Keep Synchronized Sections Small
    • Writing Correct Shut-Down Code is Hard
    • Testing Threaded Code
    • Conclusion
Powered by GitBook
On this page
  • A synchronized section of code introduces a lock.
  • Naive programmers try to make their critical sections very large
  1. 13: Concurrency

Keep Synchronized Sections Small

A synchronized section of code introduces a lock.

  • Only one thread of at any given time.

  • Locks are expensive because they introduce delays and add overhead.

  • The fewer the better. Littering code with lock statements is a bad idea.

Naive programmers try to make their critical sections very large

  • This will increase contention and degrade performance.

Recommendation:

Keep Critical Sections as Small as Possible

PreviousBeware Dependencies between Synchronized MethodsNextWriting Correct Shut-Down Code is Hard

Last updated 9 months ago