6.1 ఎక్జిక్యూటబుల్ వస్తువులు

కాబట్టి మేము ప్యాకేజీ యొక్క అతిపెద్ద భాగానికి చేరుకున్నాము. ఇది ఫ్యూచర్ మరియు కాల్ చేయదగిన ఇంటర్‌ఫేస్‌ల ద్వారా ఫలితాలను పొందగల సామర్థ్యంతో అసమకాలిక టాస్క్‌లను అమలు చేయడానికి ఇంటర్‌ఫేస్‌లను వివరిస్తుంది, అలాగే థ్రెడ్ పూల్‌లను రూపొందించడానికి సేవలు మరియు ఫ్యాక్టరీలను వివరిస్తుంది: ThreadPoolExecutor, ScheduledPoolExecutor, ForkJoinPool.

మెరుగైన అవగాహన కోసం, ఇంటర్‌ఫేస్‌లు మరియు తరగతులను కొద్దిగా కుళ్ళిపోదాం.

6.2 ఎక్జిక్యూటబుల్ ఆబ్జెక్ట్స్ యొక్క రియలైజేషన్స్

Future<V>అసమకాలిక ఆపరేషన్ ఫలితాలను పొందడానికి అద్భుతమైన ఇంటర్‌ఫేస్. గెట్ మెథడ్ ఇక్కడ కీలకమైన పద్ధతి, ఇది మరొక థ్రెడ్‌పై అసమకాలిక ఆపరేషన్ పూర్తయ్యే వరకు ప్రస్తుత థ్రెడ్‌ను (సమయం ముగిసినప్పుడు లేదా లేకుండా) బ్లాక్ చేస్తుంది. ఆపరేషన్‌ను రద్దు చేయడానికి మరియు ప్రస్తుత స్థితిని తనిఖీ చేయడానికి అదనపు పద్ధతులు కూడా ఉన్నాయి. ఫ్యూచర్‌టాస్క్ క్లాస్ తరచుగా అమలుగా ఉపయోగించబడుతుంది.

RunnableFuture<V>- ఫ్యూచర్ అనేది క్లయింట్ API కోసం ఇంటర్‌ఫేస్ అయితే, అసమకాలిక భాగాన్ని ప్రారంభించడానికి ఇప్పటికే RunnableFuture ఇంటర్‌ఫేస్ ఉపయోగించబడింది. రన్() పద్ధతిని విజయవంతంగా పూర్తి చేయడం వలన అసమకాలిక ఆపరేషన్ ముగుస్తుంది మరియు గెట్ మెథడ్ ద్వారా ఫలితాలను తిరిగి పొందేందుకు అనుమతిస్తుంది.

Callable<V>- అసమకాలిక కార్యకలాపాల కోసం అమలు చేయగల ఇంటర్‌ఫేస్ యొక్క విస్తరించిన అనలాగ్. టైప్ చేసిన విలువను తిరిగి ఇవ్వడానికి మరియు తనిఖీ చేయబడిన మినహాయింపును విసిరేందుకు మిమ్మల్ని అనుమతిస్తుంది. ఈ ఇంటర్‌ఫేస్‌కు రన్() పద్ధతి లేనప్పటికీ, అనేక java.util.concurrent తరగతులు దీనికి Runnableతో పాటు మద్దతునిస్తాయి.

FutureTask<V>— ఫ్యూచర్/రన్ చేయదగిన ఫ్యూచర్ ఇంటర్‌ఫేస్ అమలు. రన్ చేయదగిన లేదా కాల్ చేయదగిన వస్తువుల రూపంలో కన్స్ట్రక్టర్‌లలో ఒకరికి ఇన్‌పుట్‌గా అసమకాలిక ఆపరేషన్ తీసుకోబడుతుంది. ఫ్యూచర్‌టాస్క్ క్లాస్ వర్కర్ థ్రెడ్‌లో ప్రారంభించబడేలా రూపొందించబడింది, ఉదాహరణకు, కొత్త థ్రెడ్(టాస్క్).స్టార్ట్() లేదా థ్రెడ్‌పూల్ ఎగ్జిక్యూటర్ ద్వారా. అసమకాలిక ఆపరేషన్ ఫలితాలు get(...) పద్ధతి ద్వారా తిరిగి పొందబడతాయి.

Delayed- భవిష్యత్తులో ప్రారంభించాల్సిన అసమకాలిక పనుల కోసం, అలాగే డిలేక్యూలో ఉపయోగించబడుతుంది. అసమకాలిక ఆపరేషన్ ప్రారంభానికి ముందు సమయాన్ని సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.

ScheduledFuture<V>- ఫ్యూచర్ మరియు డిలేడ్ ఇంటర్‌ఫేస్‌లను మిళితం చేసే మార్కర్ ఇంటర్‌ఫేస్.

RunnableScheduledFuture<V>- RunnableFuture మరియు ScheduledFutureలను కలిపే ఇంటర్‌ఫేస్. అదనంగా, మీరు టాస్క్ ఒక-పర్యాయ పని కాదా లేదా పేర్కొన్న ఫ్రీక్వెన్సీలో అమలు చేయాలా అని పేర్కొనవచ్చు.