A ka C++ multithreading?
A ka C++ multithreading?

Video: A ka C++ multithreading?

Video: A ka C++ multithreading?
Video: C++ - Multithreading 2024, Mund
Anonim

A me shumë fije programi përmban dy ose më shumë pjesë që mund drejtuar njëkohësisht. Çdo pjesë e një programi të tillë është i quajtur a filli , dhe secili filli përcakton një rrugë të veçantë të ekzekutimit. C++ bën nuk përmban asnjë mbështetje të integruar për me shumë fije aplikacionet.

Më pas, dikush mund të pyesë gjithashtu, a është C++ me një filetim të vetëm?

Multithreading në C++ Mbështetja multithreading u prezantua në C+11. C++ 11 i hoqi të gjitha këto dhe na dha std: filli . Të filli klasat dhe funksionet e lidhura me to përcaktohen në filli skedari i kokës. std:: filli eshte filli klasë që përfaqëson a fije e vetme në C++.

Përveç sa më sipër, është Python me një fije ose me shumë fije? Përgjigja e shkurtër është po, ata janë me fije të vetme . JRuby është me shumë fije dhe mund të ekzekutohet në tomcat si kodet e tjera java. MRI (rubini i parazgjedhur) dhe Python të dy kanë një GIL (Global Interpreter Lock) dhe janë kështu me fije të vetme.

Gjithashtu pyetja është, a është e sigurt thread e hartës C++?

2 Përgjigjet. Standardi C++11 garanton që qasja e metodës së vazhdueshme në kontejnerë është i sigurt nga të ndryshme fijet (dmth, të dyja përdorin metoda konst). Pra, përgjigja e shkurtër: ju jeni i sigurt , aq sa tjetri filli nuk ngatërrohet drejtpërdrejt me atë hyrje të veçantë në harta.

A munden fije të shumta të thërrasin të njëjtin funksion?

Fije të shumta që thërrasin të njëjtin funksion në njëjtë koha. Secili thirrje funksioni ka grupin e vet privat të variablave lokale dhe do mos ndërhy kurrë me të tjerët fijet ose tjeter thirrjet të të njëjtin funksion në telefononi rafte. Megjithatë, të gjitha burimet që mund të ndahen ndërmjet fijet janë potencialisht të rrezikshme.