Std:Shared_mutex ካብ C++17 ምርዳእ
ርእይቶታት
Mewayz Team
Editorial Team
std::shared_mutex ካብ C++17
ምርዳእstd::shared_mutex፡ ኣብ C++17 ዝተኣታተወ ኮይኑ፡ ብዙሓት ፈትሊታት ብሓንሳብ ዝተኻፈሉ (ንባብ) መዕጸዊታት ክሕዙ ዘኽእል ኮይኑ፡ ንናይ ጽሕፈት ስርሓት ፍሉይ መእተዊ ዘረጋግጽ እዩ። ኣብ ዘመናዊ ሲ++ ሓደ ካብቶም ዝበዝሑ ናይ ተጓናጻጽነት ብድሆታት ይፈትሕ፡ ንደቨሎፐራት ንሳልሳይ ወገን ቤተ-መጻሕፍቲ ወይ መድረኽ-ፍሉይ ኤፒኣይ ከይበጽሑ ንኣንባቢ-ጸሓፊ ምዕጻው ንምትግባር ጽሩይን ደረጃ ዘለዎን መንገዲ ብምሃብ።
std::shared_mutex ብልክዕ እንታይ እዩ ኣብ C++17 ንምንታይ ተወሰኸ?
ቅድሚ C++17፡ ትርጉም ኣንባቢ-ጸሓፊ ዘድልዮም ዲቨሎፐራት፡ ኣብ ፕላትፎርም-ፍሉይ ፍታሕ ከም pthread_rwlock_t ኣብ POSIX ስርዓታት ወይ SRWLOCK ኣብ ዊንዶውስ ክምርኮሱ ነይርዎም፡ እንተዘይኮይኑ ከም Boost ዝኣመሰሉ ሳልሳይ ወገን ቤተ-መጻሕፍቲ ክጥቀሙ ነይርዎም። ሽማግለ ስታንዳርድ ሲ++17 ነዚ ክፍተት ኣለልዩ ብቐጥታ ንምፍታሕ ኣብቲ ዝብል ርእሲ std::shared_mutex ኣተኣታትዩ።
እቲ ቀንዲ ሓሳብ ቅኑዕ እዩ: ኣብ ብዙሓት ናይ ሓቂ ዓለም ፕሮግራማት ዳታ ካብቲ ዝጽሓፍ ኣዝዩ ዝበዝሕ ግዜ ይንበብ። ሓደ መደበኛ std::mutex ንኹሉ መእተዊ ተኸታታሊ ይገብሮ — ንባባት ሓዊሱ — እዚ ድማ ዘየድሊ ዕንቅፋት ይፈጥር። std::shared_mutex ነቲ ገደብ ኣብ መንጎ ክልተ ናይ ምዕጻው ሞድታት ብምፍላይ የልዕሎ:
- ዝብል ጽሑፍ ኣሎ።
- ተኻፊሉ (ንባብ) መዕጸዊ — ብመንገዲ
lock_shared()ዝተረኽበ፤ ብዙሓት ፈትሊታት ነዚ ብሓንሳብ ክሕዝዎ ይኽእሉ እዮም፣ እዚ ድማ ንተመሳሳሊ ንባባት ምቹእ ይገብሮ። - ፍሉይ (ምጽሓፍ) መዕጸዊ — ብመንገዲ
lock()ዝተረኽበ፤ ኣብ ሓደ እዋን ሓደ ፈትሊ ጥራይ እዩ ነዚ ክሕዞ ዝኽእል፣ ኣብ ዝሕዘሉ እዋን ድማ ዝኾነ ናይ ሓባር መዕጸዊ ኣይፍቀድን እዩ። - std::shared_lock — ኣብ ህንጸት
lock_shared()ኣብ ዕንወት ድማunlock_shared()ዝጽውዕ RAII መጠቕለሊ ኮይኑ፡ ምፍሳስ ጸጋታት ይከላኸል። - std::unique_lock / std::lock_guard — ምስቲ ፍሉይ ሞድ ዝጥቀም፣ ስርሓት ምጽሓፍ ምሉእ ብምሉእ ዝተሓለዉን ፍሉያት-ውሑስን ምዃኖም የረጋግጽ።
ኣብ ሓቀኛ ኮድ ምስ ርእይቶታት std::shared_mutex ብኸመይ ትጥቀመሉ?
ኣብ std::shared_mutex ዝጥቀም ኮድ ዝቐርቡ ርእይቶታት ብፍላይ ዋጋ ዘለዎም እዮም ምኽንያቱ ናይ ተጓናጺ ስነ-መጐት ንምምኽናይ ኣጸጋሚ ምዃኑ ዕሉል እዩ። ኣብ ጽቡቕ ቦታ ዝተቐመጡ ርእይቶታት ስለምንታይ ሓደ ፍሉይ ዓይነት መዕጸዊ ከም ዝተመርጸ የነጽር፣ እዚ ድማ ንመጻኢ ጽገናውያን ብጌጋ ውድድራት ዳታ ናይ ምትእትታው ሓደጋ ብዓቢኡ ይንክዮ። ሓደ ልሙድ ቅዲ ኣብዚ ኣሎ፡
እቶም ርእይቶታት ነቲ ኮድ ዝገብሮ ዳግማይ ካብ ምዝራብ፡ ነቲ ድሕሪ ነፍሲ ወከፍ ምርጫ መዕጸዊ ዘሎ ዕላማ ብኸመይ ከም ዝገልጽዎ ኣስተውዕል። እዚ እዩ እቲ ወርቃዊ መለክዒ፡ ርእይቶታት ንምንታይ እምበር እንታይ ክምልሱ ኣይግባእን። እቲ mutable ቁልፊ ቃል ኣብቲ mutex get() ገና ክዕጾ እናኸኣልካ const ተባሂሉ ክእወጅ የኽእል፣ ልሙድን ምሳሌኣውን ቅዲ።
ቁልፊ ርድኢት: ኩሉ ግዜ RAII መዕጸዊ መጠቕለሊታት (std::shared_lock, std::unique_lock) ምስ std::shared_mutex ተጠቐም — lock()ን unlock()ን ብኢድካ ፈጺምካ ኣይትጽውዕ። ፍሉያት ኣብ ዘለዉሉ ብኢድ ምዕጻው ናብ ዕጽውነትን ዘይተገልጸ ባህርያትን ዝወስድ ውሕስነት ዘለዎ መንገዲ እዩ።
ብ std::shared_mutex ክንሰርሕ ከለኻ ዝረኣዩ ልሙዳት መጻወድያታት እንታይ እዮም?
ዋላ ንጹር ርእይቶታትን ጽቡቕ ዕላማን እንተሃለወ፡ std::shared_mutex ንሙኩራት ኣዳለውቲ ዘዕንቅፍ ረቀቕቲ መጻወድያታት ኣለዎ። እቲ ኣዝዩ ሓደገኛ lock upgrade እዩ: ንሓደ ናይ ሓባር መዕጸዊ መጀመርታ ከይፈታሕካ ናብ ፍሉይ መዕጸዊ ንምዕባይ ኣብ ውሽጡ ዝተሃንጸ መንገዲ የለን። ብዘይ ምፍታሕ ከምኡ ክትገብር ምፍታን ቅጽበታዊ ዕጽው ይፈጥር ምኽንያቱ እቲ ፈትሊ ዝኾነ ናይ ሓባር መዕጸዊ ክሳብ ዘሎ ፈጺሙ ክወሃብ ዘይክእል ፍሉይ መዕጸዊ እናተጸበየ ናይ ሓባር መዕጸዊ ይሕዝ — እንተላይ ነቲ ዝሓዞ መዕጸዊ።
ካልእ ልሙድ ጌጋ ንጌጋ ግራኑላሪቲ ምሕላው እዩ። ሓደ ሓደ ግዜ ኣዳለውቲ ኣዝዩ ሰፊሕ ይዕጾ፣ ንዕላማ ናይቲ ኣንባቢ-ጸሓፊ ቅዲ ይስዕሮ፣ ወይ ድማ ኣዝዩ ጸቢብ፣ ኣብ መንጎ ክልተ ዝተፈላለዩ ናይ መዕጸዊ ምጥራይ ዘይልወጡ ዝጥሕሱ መስኮታት ይገድፉ። ነቲ ዘይልወጥ ዝሕሎ ዘሎ ዝገልጽ ርእይቶታት፡ ኣብ ክንዲ እቲ ተለዋዋጢ ጥራይ ዝዕጾ፡ ጋንታታት ኣብ እዋን ምግምጋም ኮድ ብዛዕባ ቅኑዕነት ክመሳሰላ ይሕግዛ።
💡 DID YOU KNOW?
Mewayz replaces 8+ business tools in one platform
CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.
Start Free →Performance can also surprise you. ኣብ ብዙሓት ጸሓፍቲ ዘለዎም ኣዝዮም ተኻታዕቲ ስርዓታት፡ std::shared_mutex ብሓቂ ብሰንኪ እቲ ተወሳኺ ናይ መዝገብ ምሕደራ ልዕሊ ዋጋ ካብ ንቡር std::mutex ዝኸፍአ ውጽኢት ክህልዎ ይኽእል። ኩሉ ግዜ ቅድሚ ኣንባቢ-ጸሓፊ ምዕጻው ጽሩይ ዓወት እዩ ኢልካ ምግማትካ ፕሮፋይል ግበር።
std::shared_mutex ምስ std::mutexን ካልኦት ኣማራጺታትን ብኸመይ ይወዳደር?
std::mutex ዝቐለለ፣ ክትዕ ትሑት ኣብ ዝኾነሉ እዋን ንምርካብ ዝቐልጠፈ፣ ንባብን ምጽሓፍን ብግምት ብማዕረ ፍሪኩዌንሲ ምስ ዝፍጸም ድማ ግቡእ እዩ። std::shared_mutex ንባባት ካብ ምጽሓፍ ብዓቢኡ ክበልጹ ከለዉ ይደምቕ — 10:1 ወይ ልዕሊኡ ሬሾ ቅድሚ ነቲ ምቕያር ኣብ ግምት ምእታውካ ርትዓዊ ሕጊ እዩ።
C++14 std::shared_timed_mutex ኣተኣታትዩ፣ እዚ ድማ try_lock_shared_for()ን try_lock_shared_until()ን ንእዋናዊ ፈተነታት ይውስኽ። ናይ C++17 std::shared_mutex ንዝጸረየ ኣተገባብራ ነቶም ግዜ ዝሓለፉ ፍልልያት የውድቖም። ኣብቲ ዝተኻፈለ መንገዲ ግዜ ዘለዎ ምዕጻው እንተድኣ ኣድልዩካ፡ std::shared_timed_mutex ይቕጽልን ክልቲኦም ዓይነታት ምሉእ ብምሉእ ደረጃ ዘለዎም እዮም።
ንካብ መዕጸዊ ነጻ ዝኾኑ ኣማራጺታት፡ std::atomic ምስ ጥንቁቕ ስርዓት ዝኽሪ ተደሚሩ ሓደ ሓደ ግዜ ንቐለልቲ ሰንደቕ ዕላማታት ወይ ቆጸርቲ ምሉእ ብምሉእ ንሓደ ሙቴክስ ክቕይሮ ይኽእል እዩ፡ ንዝተሓላለኹ ኣቃውማታት ዳታ ግን፡ std::shared_mutex ኣብቲ መደበኛ ቤተ-መጻሕፍቲ እቲ ዝያዳ ተነባቢን ዝዕቀብን ፍታሕ ኮይኑ ይቕጽል።
ብተደጋጋሚ ዝሕተቱ ሕቶታት
std::shared_mutex ጥሜት ከስዕብ ይኽእል ድዩ?
እወ ይኽእል እዩ። ሓደስቲ ናይ ሓባር-መዕጸዊ ወነንቲ ብቐጻሊ እንተመጺኦም፡ ሓደ ፍሉይ-መዕጸዊ ሓታቲ ንዘይተወሰነ እዋን ክጽበ ይኽእል እዩ — ክላሲካል ጥሜት ጸሓፊ ጸገም። እቲ ናይ C++ ደረጃ ፍሉይ ፖሊሲ ፍትሓውነት ኣይእዝዝን እዩ፣ ስለዚ ባህሪ ኣብቲ ኣተገባብራ ይምርኮስ። ብተግባር፡ መብዛሕትኦም ስታንዳርድ ቤተ-መጻሕፍቲ ኣተገባብራታት ንዝጽበዩ ፍሉያት መዕጸዊታት ሓንሳብ ሪጋ ምስ ኣተዉ ቀዳምነት ይህቡ፡ እንተኾነ ግን ጥሜት ኣብ ምፍራይ ስክፍታ እንተኾይኑ ንፍሉይ መሳርሒ ሰንሰለትካን መድረኽካን ነዚ ከተረጋግጽ ኣለካ።
std::shared_mutex ምስ std::condition_variable ንምጥቃም ውሑስ ድዩ?
std::condition_variable std::unique_lock ስለዘድልዮ፡ ምስ std::shared_mutex ብቐጥታ ኣይሰማማዕን እዩ። ዝተኻፈለ ሙቴክስ እናሓዝካ ኣብ ሓደ ኩነታት ክትጽበ እንተድኣ ኣድልዩካ፡ std::condition_variable_any ተጠቐም፡ እዚ ምስ ዝኾነ ዓይነት BasicLockable ይሰርሕ፡ እንተላይ std::shared_mutex ምስ std::shared_lock.
std::shared_mutex ኣብ ዝጥቀመሉ ኩሉ ግዜ ርእይቶታት ክውስኽ ድየ ዘለኒ?
ብውሑዱ ነቲ ኣዋጅ ናይቲ ሙቴክስ ርእይቶ ብምሃብ እንታይ ዓይነት ዳታ ከም ዝሕሉን ዘይልወጡን ከም ዝሕሉ ንምግላጽ። ኣብ ነፍሲ ወከፍ ናይ መዕጸዊ ቦታ፡ ስለምንታይ ናይ ሓባር ኣንጻር ፍሉይ ተበጻሕነት ከም ዝተመርጸ ዝገልጽ ሓጺር ርእይቶ ንገምገምቲ ኮድን መጻኢ ተሓለቕትን ርኡይ ዋጋ ይውስኽ። ናይ ተደጋጋሚ ስሕተት ካብቶም ንምብዛሕን ንምእራምን ዝኸበዱ ስለዝኾኑ፡ እቲ ኣብ ንጹርን ልክዕን ርእይቶታት ዝግበር ወፍሪ ብብዙሕ ዕጽፊ ረብሓ ይኸፍል።
ዝብል ጽሑፍ ኣሎ።
ምምሕዳር ዝተሓላለኹ ስርዓታት — ተጓናጺ C++ ኮድ ይኹን ምሉእ ንግዳዊ ስርሓት — ቅኑዕ መሳርሕታትን ንጹር ቅርጽን ይሓትት። Mewayz እቲ ብልዕሊ 138,000 ተጠቀምቲ ዝኣምኖ 207-ሞዱል ቢዝነስ ኦኤስ ኮይኑ፡ ተመሳሳሊ ንጹርነት ናብ ዕዳጋ፡ ሲኣርኤም፡ ኢ-ኮሜርስ፡ ትንታነታትን ካልእን ከምጽእ እዩ፡ ኩሉ ኣብ ሓደ መድረኽ ካብ $19 ጥራይ ኣብ ወርሒ ዝጅምር። ዓሰርተታት ዝተቛረጹ መሳርሒታት ምትሕውዋስ ኣቋርጽ እሞ ንግድኻ ብትኽክል ብጽቡቕ ዲዛይን ሶፍትዌር ከተካይድ ጀምር። ሎሚ ኣብ app.mewayz.com ንመዋይዝ ፈትኖ እሞ ሓደ ውሁድ ስርዓት ንኣገባብ ስራሕ ጋንታኻ ብኸመይ ከም ዝቕይሮ ርአ።
ረብሓ ይኸፍልTry Mewayz Free
All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.
Get more articles like this
Weekly business tips and product updates. Free forever.
You're subscribed!
Start managing your business smarter today
Join 30,000+ businesses. Free forever plan · No credit card required.
Ready to put this into practice?
Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.
Start Free Trial →Related articles
Hacker News
Mothers Defense (YC X26) Is Hiring in Austin
Mar 14, 2026
Hacker News
The Browser Becomes Your WordPress
Mar 14, 2026
Hacker News
XML Is a Cheap DSL
Mar 14, 2026
Hacker News
Please Do Not A/B Test My Workflow
Mar 14, 2026
Hacker News
How Lego builds a new Lego set
Mar 14, 2026
Hacker News
Megadev: A Development Kit for the Sega Mega Drive and Mega CD Hardware
Mar 14, 2026
Ready to take action?
Start your free Mewayz trial today
All-in-one business platform. No credit card required.
Start Free →14-day free trial · No credit card · Cancel anytime