పైథాన్‌లో మ్యూటిథ్రెడింగ్ అంటే ఏమిటి మరియు దాన్ని ఎలా సాధించాలి?



పైథాన్‌లో మల్టీ టాస్కింగ్ ఏమిటో తెలుసుకోండి. ఒక తరగతిని సృష్టించకుండా, థ్రెడ్ తరగతిని విస్తరించడం ద్వారా మరియు విస్తరించకుండా థ్రెడ్లను ఎలా సృష్టించాలో కూడా ఇది మల్టీథ్రెడింగ్ గురించి వివరిస్తుంది.

జీవితంలో అత్యంత క్లిష్టమైన అంశం సమయం. దాని ప్రాముఖ్యత కారణంగా, ప్రోగ్రామింగ్ ప్రపంచం వివిధ ఉపాయాలు మరియు సాంకేతికతలను అందిస్తుంది, ఇది సమయ వినియోగాన్ని తగ్గించడానికి మీకు సహాయపడుతుంది, తద్వారా పనితీరు పెరుగుతుంది. పైథాన్‌లో మల్టీథ్రెడింగ్ అటువంటి విధానం, ఇది చాలా ముఖ్యమైన భావనలలో ఒకటి .

ఈ వ్యాసంలో పొందుపరచబడిన అన్ని మేజర్ల శీఘ్ర సారాంశం ఇక్కడ ఉంది:





ఏమిటి మల్టీ టాస్కింగ్ పైథాన్‌లో?
థ్రెడ్ అంటే ఏమిటి?
పైథాన్‌లో మల్టీథ్రెడింగ్ అంటే ఏమిటి?
పైథాన్‌లో మల్టీథ్రెడింగ్‌ను ఎప్పుడు ఉపయోగించాలి?
పైథాన్‌లో మల్టీథ్రెడింగ్‌ను ఎలా సాధించాలి?
పైథాన్‌లో థ్రెడ్‌లను ఎలా సృష్టించాలి?

పైథాన్‌లో మల్టీథ్రెడింగ్‌ను ఉపయోగించడం వల్ల కలిగే ప్రయోజనాలు



ప్రారంభించడానికి, పైథాన్‌లో మల్టీథ్రెడింగ్ గురించి నేర్చుకోవడం ప్రారంభించడానికి ముందు మొదట మల్టీ టాస్కింగ్ అర్థం చేసుకోవడానికి ప్రయత్నిద్దాం.

పైథాన్‌లో మల్టీ టాస్కింగ్ అంటే ఏమిటి?

మల్టీ టాస్కింగ్, సాధారణంగా, బహుళ పనులను ఒకేసారి చేయగల సామర్ధ్యం. సాంకేతిక పరంగా, మల్టీ టాస్కింగ్ అనేది ఒకే సమయంలో వేర్వేరు పనులను చేయగల ఆపరేటింగ్ సిస్టమ్ యొక్క సామర్థ్యాన్ని సూచిస్తుంది. ఉదాహరణకి , మీరు మీ PC లో ఏదో డౌన్‌లోడ్ చేస్తున్నారు, అలాగే పాటలు వినడం మరియు ఏకకాలంలో ఒక ఆట ఆడుతున్నారు. మొదలైనవి. ఈ పనులన్నీ ఒకే OS ద్వారా సమకాలీకరించబడతాయి. ఇది మల్టీ టాస్కింగ్ తప్ప మరొకటి కాదు, ఇది సమయాన్ని ఆదా చేయడంలో మీకు సహాయపడటమే కాకుండా ఉత్పాదకతను పెంచుతుంది.

OS లో రెండు రకాల మల్టీ టాస్కింగ్ ఉన్నాయి:



  • ప్రాసెస్ ఆధారిత
  • థ్రెడ్ ఆధారిత

ఈ వ్యాసంలో, మీరు దాని గురించి నేర్చుకుంటారు థ్రెడ్ ఆధారిత మల్టీ టాస్కింగ్ లేదా మల్టీథ్రెడింగ్ .

css మరియు css3 మధ్య తేడా ఏమిటి

థ్రెడ్ అంటే ఏమిటి?

పైథాన్-ఎడురేకాలో థ్రెడ్లు-మల్టీథ్రెడింగ్ఒక థ్రెడ్ ప్రాథమికంగా ఒక స్వతంత్ర అమలు ప్రవాహం. ఒకే ప్రక్రియ బహుళ థ్రెడ్లను కలిగి ఉంటుంది. ప్రోగ్రామ్‌లోని ప్రతి థ్రెడ్ ఒక నిర్దిష్ట పనిని చేస్తుంది. ఉదాహరణకి, మీరు ఒక ఆట ఆడుతున్నప్పుడు మీ PC లో ఫిఫా అని చెప్పండి, మొత్తం ఆట ఒకే ప్రక్రియ , కానీ ఇది సంగీతాన్ని ప్లే చేయడానికి, వినియోగదారు నుండి ఇన్పుట్ తీసుకోవటానికి, ప్రత్యర్థిని సమకాలీకరించడానికి అనేక థ్రెడ్లను కలిగి ఉంటుంది. ఇవన్నీ ఒకే ప్రోగ్రామ్‌లో ఈ విభిన్న పనులను నిర్వహించడానికి బాధ్యత వహిస్తున్న ప్రత్యేక థ్రెడ్‌లు.

ప్రతి ప్రక్రియలో ఒక థ్రెడ్ ఉంటుంది, అది ఎల్లప్పుడూ నడుస్తుంది. ఇది ప్రధాన థ్రెడ్. ఈ ప్రధాన థ్రెడ్ వాస్తవానికి పిల్లల థ్రెడ్ వస్తువులను సృష్టిస్తుంది. చైల్డ్ థ్రెడ్ కూడా ప్రధాన థ్రెడ్ ద్వారా ప్రారంభించబడుతుంది. ప్రస్తుత రన్నింగ్ థ్రెడ్‌ను ఎలా తనిఖీ చేయాలో ఈ వ్యాసంలో మీ అందరికీ చూపిస్తాను.

కాబట్టి దీనితో, థ్రెడ్ అంటే ఏమిటో మీరు స్పష్టంగా అర్థం చేసుకున్నారని నేను ఆశిస్తున్నాను. కదులుతున్నప్పుడు, పైథాన్‌లో మల్టీథ్రెడింగ్ అంటే ఏమిటో చూద్దాం.

పైథాన్‌లో మల్టీథ్రెడింగ్‌ను ఎప్పుడు ఉపయోగించాలి?

సమయాన్ని ఆదా చేయడానికి మరియు పనితీరును మెరుగుపరచడానికి మల్టీథ్రెడింగ్ చాలా ఉపయోగపడుతుంది, కానీ ఇది ప్రతిచోటా వర్తించదు.
మునుపటి ఫిఫా ఉదాహరణలో, మ్యూజిక్ థ్రెడ్ మీ ఇన్పుట్ తీసుకునే థ్రెడ్ నుండి స్వతంత్రంగా ఉంటుంది మరియు మీ ఇన్పుట్ తీసుకునే థ్రెడ్ మీ ప్రత్యర్థిని నడిపే థ్రెడ్ నుండి స్వతంత్రంగా ఉంటుంది. ఈ థ్రెడ్లు స్వతంత్రంగా నడుస్తాయి ఎందుకంటే అవి పరస్పరం ఆధారపడవు.

అందువల్ల, వ్యక్తిగత థ్రెడ్ల మధ్య ఆధారపడటం లేనప్పుడు మాత్రమే మల్టీథ్రెడింగ్ ఉపయోగించబడుతుంది.

పైథాన్‌లో మీరు మల్టీథ్రెడింగ్‌ను ఎలా సాధించవచ్చో ఈ వ్యాసం మరింత చూపిస్తుంది.

పైథాన్‌లో మల్టీథ్రెడింగ్‌ను ఎలా సాధించాలి?

పైథాన్‌లో మల్టీథ్రెడింగ్‌ను దిగుమతి చేయడం ద్వారా సాధించవచ్చు థ్రెడింగ్ మాడ్యూల్.

ఈ మాడ్యూల్‌ను దిగుమతి చేయడానికి ముందు, మీరు దీన్ని ఇన్‌స్టాల్ చేయాలి. మీ అనకొండ వాతావరణంలో దీన్ని ఇన్‌స్టాల్ చేయడానికి, మీ అనకొండ ప్రాంప్ట్‌లో కింది ఆదేశాన్ని అమలు చేయండి:

conda install -c conda-forge tbb

ఇది విజయవంతంగా వ్యవస్థాపించబడిన తరువాత, థ్రెడింగ్ మాడ్యూల్‌ను దిగుమతి చేయడానికి మీరు ఈ క్రింది ఆదేశాలలో దేనినైనా ఉపయోగించవచ్చు:

థ్రెడింగ్ దిగుమతి నుండి థ్రెడింగ్ దిగుమతి *

ఇప్పుడు మీరు థ్రెడింగ్ మాడ్యూల్‌ను ఇన్‌స్టాల్ చేసారు, పైథాన్‌లో మల్టీథ్రెడింగ్ చేద్దాం.

పైథాన్‌లో థ్రెడ్‌లను ఎలా సృష్టించాలి?


పైథాన్లోని థ్రెడ్లను మూడు విధాలుగా సృష్టించవచ్చు:

  1. తరగతి సృష్టించకుండా
  2. థ్రెడ్ క్లాస్‌ను విస్తరించడం ద్వారా
  3. థ్రెడ్ క్లాస్‌ను పొడిగించకుండా

తరగతి సృష్టించకుండా

పైథాన్‌లో మల్టీథ్రెడింగ్ ఒక తరగతిని కూడా సృష్టించకుండా సాధించవచ్చు. అదే ప్రదర్శించడానికి ఇక్కడ ఒక ఉదాహరణ:

జావాలో హాష్ మ్యాప్ vs హ్యాష్ టేబుల్

ఉదాహరణ:

థ్రెడింగ్ దిగుమతి నుండి * ముద్రణ (ప్రస్తుత_థ్రెడ్ (). getName ()) def mt (): ముద్రణ ('చైల్డ్ థ్రెడ్') పిల్లల = థ్రెడ్ (లక్ష్యం = mt) child.start () ముద్రణ ('థ్రెడ్ పేరును అమలు చేస్తోంది:', ప్రస్తుత_థ్రెడ్ ( ) .getName ())

అవుట్పుట్:

మెయిన్ థ్రెడ్ చైల్డ్ థ్రెడ్ థ్రెడ్ పేరును అమలు చేస్తోంది: మెయిన్ థ్రెడ్

పైన పేర్కొన్న అవుట్పుట్ ఉన్న మొదటి థ్రెడ్, ప్రధాన థ్రెడ్ అని చూపిస్తుంది. ఈ ప్రధాన థ్రెడ్ చైల్డ్ థ్రెడ్‌ను సృష్టిస్తుంది, అది ఫంక్షన్‌ను అమలు చేస్తుంది మరియు చివరి ప్రింట్ స్టేట్‌మెంట్ మళ్లీ ప్రధాన థ్రెడ్ ద్వారా అమలు చేయబడుతుంది.

ఇప్పుడు మనం ముందుకు సాగండి మరియు థ్రెడ్ క్లాస్‌ను విస్తరించడం ద్వారా పైథాన్‌లో మల్టీథ్రెడింగ్ ఎలా చేయాలో చూద్దాం.

థ్రెడ్ తరగతిని విస్తరించడం ద్వారా:

థ్రెడ్ క్లాస్‌ని విస్తరించడం ద్వారా చైల్డ్ క్లాస్ సృష్టించబడినప్పుడు, చైల్డ్ క్లాస్ కొత్త థ్రెడ్ కొంత పనిని నిర్వహిస్తుందని సూచిస్తుంది. థ్రెడ్ తరగతిని విస్తరించేటప్పుడు, చైల్డ్ క్లాస్ రెండు పద్ధతులను మాత్రమే భర్తీ చేయగలదు, అనగా __init __ () పద్ధతి మరియు రన్ () పద్ధతి. ఈ రెండు పద్ధతులు తప్ప వేరే పద్ధతిని అధిగమించలేము.

థ్రెడ్‌ను సృష్టించడానికి థ్రెడ్ క్లాస్‌ని ఎలా విస్తరించాలో ఇక్కడ ఒక ఉదాహరణ:

ఉదాహరణ:

దిగుమతి థ్రెడింగ్ దిగుమతి సమయ తరగతి మిథ్రెడ్ (థ్రెడింగ్.థ్రెడ్): డెఫ్ రన్ (స్వీయ): x పరిధిలో (7): ముద్రణ ('పిల్లల నుండి హాయ్') a = పురాణం () a.start () a.join () ముద్రణ ('బై ఫ్రమ్', ప్రస్తుత_థ్రెడ్ (). GetName ())

అవుట్పుట్:
పిల్లల నుండి హాయ్
పిల్లల నుండి హాయ్
పిల్లల నుండి హాయ్
పిల్లల నుండి హాయ్
పిల్లల నుండి హాయ్
పిల్లల నుండి హాయ్
పిల్లల నుండి హాయ్
మెయిన్ థ్రెడ్ నుండి బై

పై ఉదాహరణ క్లాస్ మైక్లాస్ థ్రెడ్ క్లాస్‌ను వారసత్వంగా తీసుకుంటుందని మరియు చైల్డ్ క్లాస్ అనగా మైక్లాస్ రన్ పద్ధతిని అధిగమిస్తుందని చూపిస్తుంది. అప్రమేయంగా, ఏదైనా తరగతి ఫంక్షన్ యొక్క మొదటి పరామితి స్వయంగా ఉండాలి, ఇది ప్రస్తుత వస్తువుకు పాయింటర్. చైల్డ్ థ్రెడ్ రన్ () పద్ధతిని అమలు చేస్తుందని అవుట్పుట్ చూపిస్తుంది మరియు పిల్లల అమలు పూర్తయ్యే వరకు ప్రధాన థ్రెడ్ వేచి ఉంటుంది. జాయిన్ () ఫంక్షన్ దీనికి కారణం, ఇది పిల్లవాడు పూర్తి అయ్యే వరకు ప్రధాన థ్రెడ్ నిరీక్షిస్తుంది.

థ్రెడ్లను సృష్టించే ఈ పద్ధతి చాలా ఇష్టపడే పద్ధతి ఎందుకంటే దాని ప్రామాణిక పద్ధతి. ఒకవేళ మీరు థ్రెడ్ క్లాస్‌ని వారసత్వంగా లేదా పొడిగించకుండా థ్రెడ్‌లను సృష్టించాలనుకుంటే, మీరు దీన్ని ఈ క్రింది పద్ధతిలో చేయవచ్చు.

థ్రెడ్ తరగతిని విస్తరించకుండా

థ్రెడ్ తరగతిని పొడిగించకుండా థ్రెడ్‌ను సృష్టించడానికి, మీరు ఈ క్రింది విధంగా చేయవచ్చు:
ఉదాహరణ:

థ్రెడింగ్ దిగుమతి నుండి * క్లాస్ ఉదా: డెఫ్ మైఫంక్ (సెల్ఫ్): # శ్రేణిలోని x (7) కోసం క్లాస్ ఫంక్‌లో మొదటి పరామితిగా అవసరం: ప్రింట్ ('చైల్డ్') myobj = ex () thread1 = Thread (target = myobj. myfunc) thread1.start () thread1.join () ముద్రణ ('పూర్తయింది')

అవుట్పుట్:

పిల్లవాడు
పిల్లవాడు
పిల్లవాడు
పిల్లవాడు
పిల్లవాడు
పిల్లవాడు
పిల్లవాడు
పూర్తి

చైల్డ్ థ్రెడ్ మైఫంక్‌ను అమలు చేస్తుంది, తరువాత ప్రధాన థ్రెడ్ చివరి ముద్రణ స్టేట్‌మెంట్‌ను అమలు చేస్తుంది.

స్ట్రింగ్ టు డేట్ జావాలో మార్చండి

థ్రెడింగ్ ఉపయోగించడం వల్ల కలిగే ప్రయోజనాలు

మల్టీథ్రెడింగ్‌లో చాలా ప్రయోజనాలు ఉన్నాయి, వాటిలో కొన్ని క్రింది విధంగా ఉన్నాయి:

  • వనరులను బాగా ఉపయోగించుకోవడం
  • కోడ్‌ను సులభతరం చేస్తుంది
  • వివిధ పనుల యొక్క ఏకకాలిక మరియు సమాంతర సంఘటనలను అనుమతిస్తుంది
  • సమయ వినియోగం లేదా ప్రతిస్పందన సమయాన్ని తగ్గిస్తుంది, తద్వారా పనితీరు పెరుగుతుంది.

పైథాన్‌లో మల్టీథ్రెడింగ్‌తో మరియు లేకుండా కోడ్ అమలు చేయడానికి ఎంత సమయం పడుతుందో తనిఖీ చేయడానికి ఇక్కడ ఒక ఉదాహరణ:

 ఉదాహరణ: 
దిగుమతి సమయం def sqr (n): x లో n: time.sleep (1) x% 2 డెఫ్ క్యూబ్ (n): x లో n: time.sleep (1) x% 3 n = [1,2,3 , 4,5,6,7,8] s = time.time () sqr (n) క్యూబ్ (n) e = time.time () print (es)

అవుట్పుట్:

16.042309284210205

పైన పేర్కొన్నది థ్రెడ్లను ఉపయోగించకుండా ప్రోగ్రామ్ను అమలు చేయడానికి తీసుకున్న అవుట్పుట్ సమయం. ఇప్పుడు మనం థ్రెడ్లను ఉపయోగిద్దాం మరియు అదే ప్రోగ్రామ్కు ఏమి జరుగుతుందో చూద్దాం:

ఉదాహరణ:

థ్రెడింగ్ నుండి దిగుమతి థ్రెడింగ్ దిగుమతి * దిగుమతి సమయం డెఫ్ sqr (n): x లో n: time.sleep (1) ముద్రణ ('2 ద్వారా విభజించిన తరువాత రిమైండర్', x% 2) డెఫ్ క్యూబ్ (n): x లో n కోసం: time.sleep (1) ముద్రణ ('3 ద్వారా విభజించిన తరువాత రిమైండర్', x% 3) n = [1,2,3,4,5,6,7,8] ప్రారంభం = time.time () t1 = థ్రెడ్ ( target = sqr, args = (n,)) t2 = Thread (target = cube, args = (n,)) t1.start () time.sleep (1) t2.start () t1.join () t2.join () end = time.time () ముద్రణ (ముగింపు-ప్రారంభం)
అవుట్పుట్: 9.040220737457275

థ్రెడ్లను ఉపయోగించకుండా అదే ప్రోగ్రామ్ అమలు చేయడానికి తీసుకున్న సమయంతో పోలిస్తే మనం థ్రెడ్లను ఉపయోగించినప్పుడు తీసుకున్న సమయం చాలా తక్కువ అని పై అవుట్పుట్ స్పష్టంగా చూపిస్తుంది.

పైథాన్‌లోని మల్టీథ్రెడింగ్‌కు సంబంధించిన ఈ వ్యాసం క్రింద ఉన్న భావనలతో మీరు స్పష్టంగా ఉన్నారని నేను ఆశిస్తున్నాను. ప్రోగ్రామింగ్‌లో ఉపయోగించే అతి ముఖ్యమైన భావనలలో ఇది ఒకటి కాబట్టి సాధ్యమైనంతవరకు ప్రాక్టీస్ చేయాలని నిర్ధారించుకోండి.

మాకు ప్రశ్న ఉందా? దయచేసి ఈ “పైథాన్‌లో మల్టీథ్రెడింగ్” బ్లాగులోని వ్యాఖ్యల విభాగంలో పేర్కొనండి మరియు మేము సంకల్పం వీలైనంత త్వరగా మిమ్మల్ని సంప్రదించండి.

పైథాన్‌తో పాటు దాని వివిధ అనువర్తనాలతో లోతైన జ్ఞానం పొందడానికి, మీరు ప్రత్యక్ష ప్రసారం కోసం నమోదు చేసుకోవచ్చు 24/7 మద్దతు మరియు జీవితకాల ప్రాప్యతతో.