Hacker News

Std-ны аңлау: C ++ 17-дән Shared_mutex

Аңлатмалар

2 min read Via www.cppstories.com

Mewayz Team

Editorial Team

Hacker News

std :: C ++ 17

дан уртак_мутексны аңлау C ++ 17 белән кертелгән

std :: shared_mutex - синхронизация примитивы, ул берничә җепне бер үк вакытта уртак (уку) йозакларын тотарга мөмкинлек бирә, шул ук вакытта язу операцияләренә эксклюзив керү мөмкинлеген тәэмин итә. Бу хәзерге C ++ иң еш очрый торган проблемаларның берсен чишә, өченче як китапханәләренә яки платформага хас API'ларга ирешмичә, укучы-язучының йозакларын кертү өчен чиста, стандарт ысул биреп.

Нәрсә ул std :: shared_mutex һәм ни өчен C ++ 17 өстәлде?

C ++ 17 алдыннан, укучы-язучы семантикасына мохтаҗ булганнар, POSIX системаларында pthread_rwlock_t яки Windows'та SRWLOCK кебек платформадагы чишелешләргә таянырга тиеш иделәр, яисә алар Boost кебек өченче як китапханәләрен кулланырлар иде. C ++ 17 стандарт комитеты бу аерманы таныды һәм башлыгына турыдан-туры мөрәҗәгать итү өчен std :: shared_mutex кертте.

Төп идея туры: күп реаль дөнья программаларында мәгълүматлар язылганга караганда ешрак укыла. Стандарт std :: mutex барлык рөхсәтне серияләштерә - кертелгән укулар - кирәксез кыенлыклар тудыра. <код> std :: shared_mutex ике чикләү режимын аерып бу чикләүне күтәрә: