జావాలో పిలవబడే ఇంటర్ఫేస్ను ఎలా అమలు చేయాలి



ఈ వ్యాసం జావాలో కాల్ చేయదగిన ఇంటర్‌ఫేస్‌ను ఉదాహరణలతో ఎలా అమలు చేయాలో వివరణాత్మక మరియు సమగ్రమైన జ్ఞానాన్ని మీకు అందిస్తుంది.

జావా మల్టీథ్రెడింగ్ ప్రోగ్రామ్‌లు విస్తృతంగా ఉపయోగించడాన్ని చూస్తాయి పిలవదగిన మరియు భవిష్యత్తు. థ్రెడ్లు మరియు మల్టీ-థ్రెడింగ్ యొక్క ముందస్తు జ్ఞానం కింద, పాఠకులు ఈ వ్యాసంలోని చర్చను బాగా గ్రహించగలుగుతారు. నేను ఈ వ్యాసంలో జావాలో పిలవబడే ఇంటర్ఫేస్ గురించి వివరిస్తాను.

థ్రెడ్‌లపై రీక్యాప్ చేయండి

అయితే, థ్రెడ్ల భావనకు సంక్షిప్త పరిచయం ఇస్తాను. థ్రెడ్ అనేది అమలు యొక్క ప్రత్యేక మార్గం, మీరు పునరావృతమయ్యే పనిని చేయవలసి వస్తే, పనిని బహుళ పనులుగా విభజించి, వాటిని థ్రెడ్‌లకు కేటాయించవచ్చు. మల్టీ-థ్రెడింగ్ఫలితాన్ని త్వరగా పొందడానికి సమాంతరంగా వేర్వేరు పనులను అమలు చేయడానికి బహుళ థ్రెడ్లను కేటాయించడం తప్ప మరొకటి కాదు.





జావాలో పిలవబడే ఇంటర్ఫేస్ అంటే ఏమిటి

జావా 5 కోసం, తరగతి “java.util.concurrent” ప్రవేశపెట్టబడింది. ఈ పిలవబడే ఇంటర్ఫేస్ రన్ చేయగల ఇంటర్ఫేస్ మాదిరిగానే కనిపించే కంకరెన్సీ ప్యాకేజీ ద్వారా తీసుకురాబడింది. ఇది ఏదైనా వస్తువును కూడా తిరిగి ఇవ్వగలదు మరియు మినహాయింపును విసిరివేయగలదు. జావా కాల్ చేయదగిన ఇంటర్ఫేస్ జెనెరిక్స్ను ఉపయోగిస్తుంది, తద్వారా ఏ రకమైన వస్తువునైనా తిరిగి ఇవ్వడం సాధ్యపడుతుంది. ఎగ్జిక్యూటర్ ఫ్రేమ్‌వర్క్ థ్రెడ్‌ల కొలనులో పిలవబడే అమలులను అమలు చేయడానికి సమర్పణ () పద్ధతిని ఇస్తుంది. వాస్తవానికి, జావా ఎగ్జిక్యూటర్ ఫ్రేమ్‌వర్క్ వర్కర్‌థ్రెడ్ నమూనాలకు కట్టుబడి ఉంటుంది.

java-interfaceథ్రెడ్ పూల్ లో యూజర్లు Executor.newFixedThreadPool (10) పద్ధతిని ఉపయోగించి థ్రెడ్లను ప్రారంభించవచ్చు మరియు తదనుగుణంగా దానికి ఒక పనిని సమర్పించవచ్చు. రన్ చేయదగినది థ్రెడ్ యొక్క లక్ష్యంగా పనిచేస్తుంది మరియు విధిని నిర్వచించడానికి పబ్లిక్ శూన్యత రన్ () పద్ధతి తప్పనిసరిగా అమలు చేయబడుతుంది. థ్రెడ్ పూల్‌లోని థ్రెడ్‌ల ద్వారా ఇది అమలు చేయబడుతుంది. పూల్‌లోని థ్రెడ్ల లభ్యత ఆధారంగా, ఎగ్జిక్యూటర్ ఫ్రేమ్‌వర్క్ థ్రెడ్‌లకు పనిని (అమలు చేయగల లక్ష్యం) కేటాయిస్తుంది.అన్ని థ్రెడ్లు వాడుకలో ఉంటే, పనిని నిలిపివేయాలి. థ్రెడ్ ఒక పనిని పూర్తి చేసిన తర్వాత అది అందుబాటులో ఉన్న థ్రెడ్‌గా పూల్‌కు తిరిగి వస్తుంది, ఇది భవిష్యత్ పనులను అంగీకరించడానికి సిద్ధంగా ఉంది. పిలవబడేది రన్‌నేబుల్ మాదిరిగానే ఉంటుంది మరియు మేము పని నుండి ఫలితం లేదా స్థితిని పొందాలనుకున్నప్పుడు ఏ రకమైన వస్తువునైనా తిరిగి ఇవ్వగలము.



కాల్ చేయగల ఇంటర్ఫేస్ తిరిగి

జావా కాల్ చేయదగినది java.util.concurrent ను అందిస్తుంది. అనుబంధ కాల్ చేయదగిన పనిని తొలగించడానికి జావా ఫ్యూచర్ రద్దు () పద్ధతిని అందిస్తుంది. ఇది గెట్ () పద్ధతి యొక్క ఓవర్‌లోడ్ వెర్షన్, ఇక్కడ ఫలితం కోసం వేచి ఉండటానికి కొంత సమయం పేర్కొనవచ్చు. ప్రస్తుత థ్రెడ్‌ను నివారించడానికి ఇది ఉపయోగపడుతుంది, ఇది ఎక్కువ కాలం నిరోధించబడవచ్చు. దయచేసి గెట్ పద్ధతి ఒక సమకాలిక పద్ధతి అని గుర్తుంచుకోండి మరియు పిలవబడే దాని పనిని పూర్తి చేసి విలువను తిరిగి ఇచ్చేవరకు, అది పిలవబడే వరకు వేచి ఉండాలి.

అనుబంధ కాల్ చేయదగిన పని యొక్క ప్రస్తుత స్థితిని పొందడానికి “isDone ()” మరియు “isCancelled ()” పద్ధతులు కూడా ఉన్నాయి. ఒకటి నుండి 100 వరకు ఉన్న అన్ని సంఖ్యల మొత్తాన్ని కనుగొనవలసిన ఉదాహరణను పరిశీలించండి. మేము 1 నుండి 100 వరకు వరుసగా లూప్ చేయవచ్చు మరియు చివరకు వాటిని జోడించవచ్చు. మరొక అవకాశం విభజించడం మరియు జయించడం. ఈ పద్ధతిలో, ప్రతి సమూహంలో సరిగ్గా రెండు అంశాలు ఉన్న విధంగా మేము సంఖ్యలను సమూహపరచవచ్చు. చివరగా, మేము ఆ సమూహాన్ని థ్రెడ్ల కొలనుకు కేటాయించవచ్చు. అందువల్ల, ప్రతి థ్రెడ్ పాక్షిక మొత్తాన్ని సమాంతరంగా తిరిగి ఇస్తుంది, ఆపై ఆ పాక్షిక మొత్తాలను సేకరించి మొత్తం మొత్తాన్ని పొందడానికి వాటిని జోడించండి.



కాల్ చేయదగిన మరియు భవిష్యత్తు తరగతి యొక్క లక్షణాలు

  • పిలవబడే తరగతి ఒక SAM రకం ఇంటర్ఫేస్ మరియు అందువల్ల దీనిని లాంబ్డా వ్యక్తీకరణలో అమలు చేయవచ్చు.

  • పిలవబడే తరగతికి ఒకే ఒక పద్ధతి “కాల్ ()” ఉంది, ఇది అసమకాలికంగా అమలు చేయడానికి అవసరమైన అన్ని కోడ్‌లను కలిగి ఉంటుంది.

  • అమలు చేయగల ఇంటర్ఫేస్ వాతావరణంలో, గణన ఫలితాన్ని తిరిగి ఇవ్వడానికి లేదా చెక్ చేసిన మినహాయింపును విసిరే అవకాశం లేదు. కాల్ చేయదగిన విలువను తిరిగి ఇవ్వడం మరియు తనిఖీ చేసిన మినహాయింపును విసిరేయడం అందుబాటులో ఉంది.

  • గణన పూర్తయిన తర్వాత ఫలితాలను తిరిగి పొందడానికి ఫ్యూచర్ క్లాస్ యొక్క గెట్ () పద్ధతిని ఉపయోగించవచ్చు. పూర్తయిన () పద్ధతిని ఉపయోగించడం ద్వారా గణన పూర్తయిందా లేదా అని వినియోగదారులు తనిఖీ చేయవచ్చు.

  • ఫ్యూచర్.కాన్సెల్ () పద్ధతిని ఉపయోగించి గణనను రద్దు చేయడం కూడా కొన్ని అనువర్తనాల్లో ఒక వరం.

  • గెట్ () ను బ్లాకింగ్ కాల్ అంటారు మరియు గణన పూర్తయ్యే వరకు ఇది బ్లాక్ అవుతూనే ఉంటుంది.

పిలవబడే మరియు అమలు చేయగల తరగతుల పోలిక

పిలవదగినది అమలు చేయదగినది
ఇది “ java.util.concurrent ' జావా 1.5 నుండి ప్యాకేజీఇది జావా 1.0 నుండి java.lang ప్యాకేజీలో భాగం
పిలవబడే పారామీటర్ ఇంటర్‌ఫేస్పారామితి లేని ఇంటర్ఫేస్
తనిఖీ చేసిన మినహాయింపును విసిరే సామర్థ్యంఇది తనిఖీ చేసిన మినహాయింపును విసిరివేయదు
ఇది టైప్ V ని తిరిగి ఇచ్చే కాల్ () అనే ఒకే పద్ధతిని కలిగి ఉంది, ఇది నిర్వచించిన ఇంటర్ఫేస్ పరామితి “రకం” వలె ఉంటుందిఇక్కడ, ఇది రన్ () అని పిలువబడే ఒకే పద్ధతిని కలిగి ఉంది, అది శూన్యతను ఇస్తుంది

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

ప్యాకేజీ com.journaldev.threads దిగుమతి java.util.ArrayList దిగుమతి java.util.Date దిగుమతి java.util.List దిగుమతి java.util.concurrent. .util.concurrent.Executor దిగుమతి java.util.concurrent .) కాల్ చేయదగిన జాబితాతో అనుబంధించబడిన వస్తువుజాబితా = క్రొత్త శ్రేణి జాబితా() // MyCallable ఉదాహరణను సృష్టించండి (int i = 0 i) కోసం పిలవదగిన కాల్ చేయదగిన = క్రొత్త MyCallable ()<100 i++){ //submit Callable tasks to be executed by thread pool Future future = executor.submit(callable) //add Future to the list, we can get return value using Future list.add(future) } for(Future fut : list){ try { //print the return value of Future, notice the output delay in console // because Future.get() waits for task to get completed System.out.println(new Date()+ '::'+fut.get()) } catch (InterruptedException | ExecutionException e) { e.printStackTrace() } } //shut down the executor service now executor.shutdown() } } 

ఎగ్జిక్యూటర్ సేవలను మూసివేస్తోంది

చాలా మంది డెవలపర్లు కోల్పోయే కీలకమైన మరియు ముఖ్యమైన అంశం ఎగ్జిక్యూటర్ సర్వీసును మూసివేయడం. ఎగ్జిక్యూటర్ సర్వీస్ చాలా ముఖ్యమైనది మరియు అదనపు థ్రెడ్ అంశాలతో సృష్టించబడుతుంది. నాన్-డీమన్ థ్రెడ్‌లు ఆగినప్పుడే JVM ఆగుతుందని గుర్తుంచుకోండి. అందువల్ల ఎగ్జిక్యూటర్ సేవను మూసివేయడం JVM ని ఆపకుండా నిరోధిస్తుంది.

థ్రెడ్లను అమలు చేయవలసిన అవసరం లేదని ఎగ్జిక్యూటర్ సేవకు చెప్పడానికి, మేము సేవను మూసివేయాలి.

షట్డౌన్ ప్రారంభించడానికి మూడు మార్గాలు ఉన్నాయి:

  • రద్దు షట్డౌన్ () - ఇది క్రమంగా షట్డౌన్‌ను ప్రారంభిస్తుంది, దీనిలో గతంలో సమర్పించిన పనులు అమలు చేయబడతాయి, కాని కొత్త పనులు ఏవీ అంగీకరించబడవు.
  • జాబితా షట్డౌన్ ఇప్పుడు () - ఇది చురుకుగా అమలు చేసే అన్ని పనులను ఆపడానికి ప్రయత్నిస్తుంది, పెండింగ్‌లో ఉన్న పనుల ప్రాసెసింగ్‌ను నిలిపివేస్తుంది మరియు అమలు కోసం ఎదురుచూస్తున్న పనుల జాబితాను కూడా అందిస్తుంది.
  • శూన్యమైన నిరీక్షణ () - షట్డౌన్ అభ్యర్థన తర్వాత అన్ని పనులు అమలు పూర్తయ్యే వరకు లేదా సమయం ముగిసే వరకు ఇది బ్లాక్ అవుతూనే ఉంటుంది. ప్రస్తుత థ్రెడ్ అంతరాయం కలిగించినప్పుడు కూడా ఇది బ్లాక్ అవుతుంది. మొదట ఏ పని మొదట వస్తుంది అనే దానిపై ఆధారపడి ఉంటుంది.

దీనితో, మేము జావా వ్యాసంలో కాల్ చేయదగిన ఇంటర్ఫేస్ చివరికి వస్తాము. జావాలో మీకు ఫ్యూచర్ మరియు కాల్ చేయగల ఇంటర్ఫేస్ గురించి అవగాహన వచ్చిందని నేను ఆశిస్తున్నాను.

చూడండి ప్రపంచవ్యాప్తంగా 250,000 కంటే ఎక్కువ సంతృప్తికరమైన అభ్యాసకుల నెట్‌వర్క్‌తో విశ్వసనీయ ఆన్‌లైన్ లెర్నింగ్ సంస్థ ఎడురేకా చేత. ఎడురేకా యొక్క జావా J2EE మరియు SOA శిక్షణ మరియు ధృవీకరణ కోర్సు జావా డెవలపర్‌గా ఉండాలనుకునే విద్యార్థులు మరియు నిపుణుల కోసం రూపొందించబడింది.

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

ఏ స్కానర్ క్లాస్ పద్ధతి స్ట్రింగ్ చదువుతుంది