Ц Програмирање

Посик Мутек са Ц програмирањем

Посик Мутек са Ц програмирањем
Данашњи чланак биће фокусиран на употребу Посик Мутека са Ц програмирањем у Линук Минт 20. Међутим, пре него што кренемо на наш главни пример, прво бисмо желели да рашчистимо неколико терминологија, тако да можете лако разумети пример сценарија који ћемо делити са вама. У оперативним системима концепт навоја се широко користи. Теме су у основи подпроцеси који се делегирају са различитим задацима. Да бисте разумели рад нити, можете размотрити следећи пример.

Претпоставимо да постоји главна нит А, чији је задатак израчунавање збира променљивих в и и где је в = к + 1 и и = з + 2. Вредности променљивих к и з треба да преузме корисник. У овом сценарију можемо створити две нити, Б и Ц. Посао нити Б биће да од корисника преузме вредност променљиве к, увећа за 1 и сачува у променљивој в. Посао нити Ц ће бити да од корисника преузме вредност променљиве з, повећа за 2 и сачува у променљивој и. Коначно, обе ове нити ће предати ове резултате главној нити А, која ће затим израчунати њихов збир и приказати коначни резултат.

Да у овом сценарију не бисмо креирали нити, тада би све задатке извршила главна нит А у много већем времену. На тај начин нити могу ефикасно извршити ваше прорачуне без непотребних одлагања. Међутим, постоји велика забринутост због употребе нити, која је позната као „тркачко стање“. То је ситуација у којој две нити покушавају да приступе и модификују исте податке, што их оставља недоследним. Као програмеру, наш циљ би требао бити да на најграциознији начин избегнемо услове за трку.

Решење које се најчешће користи за избегавање услова расе је употреба Мутека. Мутек се залаже за узајамно искључивање и у основи нам пружа механизам закључавања који истовремено спречава приступ и модификовање критичних података од више корисника. На овај начин се осигурава доследност података. Посик је у основи библиотека која нам представља различите уграђене функције које олакшавају имплементацију нити и Мутека. Следећим примером покушаћемо да научимо употребу Посик Мутека са Ц програмирањем у Линук Минт 20.

Пример употребе Посик Мутека са Ц програмирањем у Линук Минт 20

Извешћемо следећа три корака како бисмо вас провели кроз употребу Посик Мутека са Ц програмирањем у Линук Минт 20.

1. корак: Стварање програма који демонстрира употребу Посик Мутека са Ц програмирањем у Линук Минт 20

Пре свега, створићемо а .цпп датотеку на нашем Линук Минт 20 систему. Једноставно ћемо отићи у нашу фасциклу Почетна, створити празан документ и назвати га Мутек.цпп. Једном наша .цпп датотека је креирана, отворићемо је помоћу уређивача текста. Након тога ћемо у наш код укуцати код приказан на сликама испод .цпп датотека:

Код приказан на две горње слике створио је две различите нити. Прва нит одговара задатку # 1, док друга нит одговара задатку # 2. Тада смо креирали узорак функције назване „Мутек функција“. У овој функцији прво закључавамо променљиву закључавања Мутек и она ће се откључати тек када нит # 1 заврши посао # 1. Слично томе, променљива закључавања Мутек поново ће бити закључана помоћу нити # 2 док не заврши посао # 2. Ову „функцију мутекса“ назива функција „главна“.

Корак # 2: Компајлирање програма Ц у Линук Минт 20

Након чувања датотеке .цпп датотеку, сада ћемо је компајлирати путем Линук Минт 20 терминала следећом наредбом:

$ гцц -о Мутек Мутек.цпп -птхреад

Овде се „Мутек“, иза ознаке „-о“, односи на име објектне датотеке која ће бити креирана, док „Мутек“.цпп ”је назив оригинала .цпп датотеку. Ознака „-птхреад“ је неопходна за састављање овог програма, јер је овај програм написан док се користи библиотека „птхреад“. Ако изоставите ову заставицу, ваш програм се неће компајлирати и приказаће неке грешке. Успешна компилација нашег .цпп датотека неће произвести никакве поруке на терминалу, као што је приказано на доњој слици:

Корак # 3: Покретање програма Ц на Линук Минт 20

Једном када је креирана објектна датотека под називом „Мутек“, можемо је покренути помоћу следеће наредбе:

$ ./ Мутек

У излазу нашег Мутека.цпп програм, приметићете да је први посао 1 започео, што значи да је нит # 1 стекла Мутек браву. После тога, посао 1 се након неког времена завршава. Тада започиње посао 2, што значи да је нит # 2 стекла Мутек браву. Откључаће се тек када се посао 2 заврши.

Закључак

Овај чланак је пружио детаљно објашњење употребе Посик Мутека са Ц програмирањем у Линук Минт 20. Мутек се може врло ефикасно користити за избегавање тркачких услова током програмирања једноставним укључивањем Посик или птхреад библиотеке у наш Ц код. Ово не само да ће осигурати доследност података већ ће и обраду учинити много ефикаснијом.

Најбоља ствар у вези са употребом Посик библиотеке у Линуку је та што за њу чак не треба да инсталирамо никакав специјализовани софтвер, пакете или компајлер. Ц код се може једноставно написати у било који задани уређивач текста на Линуку и може се компајлирати и покренути са подразумеваним гцц или г ++ компајлерима. Ово се показало као додатни слој лакоће и погодности у употреби Посик Мутека са Ц програмирањем у Линук Минт 20.

Водич за сенку Томб Раидера за Линук
Схадов оф тхе Томб Раидер је дванаести додатак серији Томб Раидер - акцијско-авантуристичкој игри коју је створио Еидос Монтреал. И критичари и фанови...
Како појачати ФПС у Линуку?
ФПС је скраћеница за Фрејмова у секунди. Задатак ФПС-а је да мери брзину кадрова у репродукцијама видео записа или играчким перформансама. Једноставни...
Најпопуларније лабораторијске игре Оцулус Апп
Ако сте власник Оцулус слушалица, онда морате бити упознати са бочним учитавањем. Бочно учитавање је поступак инсталирања не-продавничког садржаја на ...