በጃቫ ውስጥ በእንቅልፍ እና በመጠባበቅ መካከል ያለው ልዩነት

ዝርዝር ሁኔታ:

በጃቫ ውስጥ በእንቅልፍ እና በመጠባበቅ መካከል ያለው ልዩነት
በጃቫ ውስጥ በእንቅልፍ እና በመጠባበቅ መካከል ያለው ልዩነት

ቪዲዮ: በጃቫ ውስጥ በእንቅልፍ እና በመጠባበቅ መካከል ያለው ልዩነት

ቪዲዮ: በጃቫ ውስጥ በእንቅልፍ እና በመጠባበቅ መካከል ያለው ልዩነት
ቪዲዮ: What is Hibernation? | What is Diapause? | Hibernation and Diapause | D/W Hibernation & Diapause. 2024, ሀምሌ
Anonim

የቁልፍ ልዩነት - እንቅልፍ vs መጠበቅ በጃቫ

እንቅልፍ እና መጠበቅ በጃቫ ውስጥ ባለ ብዙ ስክሪፕት ለማድረግ የሚያገለግሉ ሁለት መንገዶች ናቸው። የመኝታ ዘዴው የ Thread ክፍል ሲሆን የጥበቃ ዘዴው ከ Object class ነው። በጃቫ ውስጥ በእንቅልፍ እና በመጠባበቅ መካከል ያለው ቁልፍ ልዩነት ፣እንቅልፉ የወቅቱን ክር አፈፃፀም ለተወሰነው ሚሊሰከንዶች ቁጥር ለማስቆም ጥቅም ላይ ይውላል ፣የጥበቃ ዘዴው ደግሞ የአሁኑ ክር ማስታወቂያውን እስኪጠራ ድረስ እንዲቆይ ለማድረግ ወይም ሌላ ክር እስኪጠራ ድረስ እንዲቆይ ለማድረግ ነው። ለነገሩ ሁሉንም ዘዴ አሳውቅ።

አንድ ክር በስርዓተ ክወናው ውስጥ በጣም ትንሹ የማስኬጃ አሃድ ነው። በአንድ ፕሮግራም ውስጥ አንድ ነጠላ ተከታታይ የመቆጣጠሪያ ፍሰት ነው.ክሮች ቀላል ክብደት አላቸው. Multithreading ብዙ ክሮች በተመሳሳይ ጊዜ የማሄድ ዘዴ ነው። እንደ ጃቫ ያሉ የፕሮግራም አወጣጥ ቋንቋዎች ባለብዙ-ክር ንባብን ይደግፋል። ብዙ ክሮች በአንድ ጊዜ እንዲሰሩ ስለሚያስችል እና ክሩ እርስ በርስ የማይነጣጠሉ ስለሆኑ መልቲትራይዲንግ ጥቅሞች አሉት. በጃቫ ውስጥ ለብዙ ስክሪፕት የሚያገለግሉ ዘዴዎች አሉ። ሁለቱ ተኝተው ይጠብቁ።

በጃቫ እንቅልፍ ምንድነው?

በስርዓተ ክወና ውስጥ የሚሰሩ ብዙ ሂደቶች አሉ። ሂደት በአፈፃፀም ላይ ያለ ፕሮግራም ነው። እያንዳንዱ ሂደት ብዙ ክሮች ሊኖረው ይችላል፣ እና በእነዚህ ክሮች መካከል የአውድ መቀያየር አለ። በጃቫ ውስጥ ክር ለመፍጠር ሁለት መንገዶች አሉ። ይህም የክር ክፍሉን በማራዘም ወይም Runnable interfaceን በመተግበር ነው። የ Thread ክፍል በአንድ ክር ላይ ስራዎችን ለመፍጠር እና ለማከናወን ገንቢዎች እና ዘዴዎች አሉት። የ Thread ክፍል የነገር ክፍልን ያራዝማል እና Runnable interfaceን ይተገብራል። የሩጫ በይነገጹ በክር ለመፈፀም የታሰበ በማንኛውም ክፍል መተግበር አለበት።ክሩ በሚሰራበት ጊዜ, መፈጸም ያለበት ኮድ በአሂድ ዘዴ ውስጥ ይፃፋል. መሮጥ ያለበት ክር በክር መርሐግብር ይመረጣል. በአንድ ሂደት ውስጥ አንድ ክር ብቻ ነው የሚሰራው።

አንድ ክር በበርካታ ደረጃዎች ያልፋል። የ Thread ክፍልን ነገር ከፈጠሩ በኋላ ፕሮግራሚው የመነሻ ዘዴውን መጥራት ይችላል። ያንን ዘዴ ከመጥራትዎ በፊት, ክሩ በአዲሱ ሁኔታ ውስጥ ነው ይባላል. የክር መርሐግብር አውጪው ለማሄድ ክር ይመርጣል። ክሩ ገና በክር መርሐግብር ካልተመረጠ ነገር ግን የመነሻ ዘዴው ከተጠራ፣ ክርው ሊሄድ በሚችል ሁኔታ ውስጥ ነው። ክር መርሐግብር የሚያከናውንበትን ክር ከመረጠ በኋላ ወደ ሩጫ ሁኔታ ይሸጋገራል። ክሩ በህይወት ካለ ግን በአሁኑ ጊዜ ለመሮጥ ብቁ ካልሆነ፣ በማይሄድ ወይም በታገደ ሁኔታ ውስጥ ነው። የሩጫ ዘዴው ከተጠናቀቀ በኋላ ክሩ ወደ ተቋረጠ ሁኔታ ይሄዳል. እነዚያ የክር የሕይወት ዑደት ዋና ደረጃዎች ናቸው።

የተለያዩ ተግባራትን ለማከናወን በክር ክፍል ውስጥ የተለያዩ ዘዴዎች አሉ።የእንቅልፍ ዘዴ ዘዴውን ለተወሰነ ጊዜ ለመተኛት ያገለግላል. የመኝታ ዘዴ አገባብ የህዝብ ባዶ እንቅልፍ (ረጅም ሚሊሰከንዶች) የሚጣል ኢንተርሮፕትድኤክሴሽን ነው። በአሁኑ ጊዜ እየፈፀመ ያለው ክር ለተወሰነ ሚሊሰከንዶች ጊዜያዊ አፈፃፀም እንዲያቆም ያደርገዋል። ሌላ ክር የአሁኑን ክር ካቋረጠው፣ የአሁኑ ክር የተቋረጠው ሁኔታ ይህ ልዩ ሲጣል ይጸዳል።

በጃቫ ውስጥ በእንቅልፍ እና በመጠባበቅ መካከል ያለው ልዩነት
በጃቫ ውስጥ በእንቅልፍ እና በመጠባበቅ መካከል ያለው ልዩነት

ስእል 01፡ የጃቫ ፕሮግራም ከእንቅልፍ ዘዴ ጋር

ከላይ ባለው ፕሮግራም መሰረት የሩጫ ዘዴው መተግበር ያለበት ኮድ ይዟል። በዋናው ፕሮግራም ውስጥ, የ ExampleThread1 ሁለት ነገሮች ተፈጥረዋል, እና የመነሻ ዘዴዎች በእነሱ ላይ ተጠርተዋል. ያ ኮዱን በአሂድ ዘዴ ውስጥ ለማስኬድ ያስችላል። በአንድ ጊዜ አንድ ክር ብቻ ነው የሚሰራው. ከክር ጋር።እንቅልፍ (1000); የመጀመሪያው ክር ለ 1000 ሚሊሰከንዶች ግድያውን እንዲያቋርጥ ያስችለዋል. ክር ሲተኛ ክር መርሐግብር አውጪው ሌላውን ክር ያነሳል።

በጃቫ ምን መጠበቅ ነው?

በርካታ ክሮች የጋራ መገልገያ ሊደርሱ ይችላሉ። የተሳሳተ ውጤት እንዲፈጠር ሊያደርግ ይችላል. የክር ማመሳሰል የጋራ መገልገያውን ለመድረስ አንድ ክር ብቻ ለመስራት ሊያገለግል ይችላል። ሁኔታውን እንደሚከተለው አስቡ። እንደ t1 እና t2 ያሉ ሁለት ክሮች ካሉ፣ t1 እሴቶችን Text1.txt በሚባል የጽሑፍ ፋይል ላይ ማስቀመጥ ይጀምራል። እነዚያ እሴቶች t1 ሲመለስ ለሌላ ስሌት ጥቅም ላይ ይውላሉ። t2 የሚጀምረው t1 ከመመለሱ በፊት ከሆነ፣ t2 በ t1 የተቀመጡትን እሴቶች ሊለውጥ ይችላል። ይህ t1 የተሳሳተ ውፅዓት እንዲያቀርብ ሊያደርግ ይችላል። በማመሳሰል እገዛ t1 የText1.txt ፋይል መጠቀም ሲጀምር ፋይሉ ሊቆለፍ ስለሚችል በ t1 ብቻ ይገኛል። t1 ያንን የጽሑፍ ፋይል ለመድረስ መቆለፊያውን እስኪለቅ ድረስ t2 ሊለውጠው አይችልም። ስራው ሲጠናቀቅ t1 መቆለፊያውን መልቀቅ ይችላል. መቆለፊያው ተቆጣጣሪ ተብሎም ይጠራል.

የክር ማመሳሰል በክር መካከል ግንኙነት በማድረግ ሊገኝ ይችላል። ወሳኝ ክፍል የጋራ ንብረቶችን የሚደርስ የኮድ ክፍል ነው። በኢንተር-ክር ግንኙነት ውስጥ አንድ ክር ወሳኝ በሆነው ክፍል ውስጥ እየሮጠ ባለበት ይቆማል, እና ሌላ ክር ለመፈፀም በተመሳሳይ ወሳኝ ክፍል ውስጥ እንዲገባ ይፈቀድለታል. ሁሉንም ዘዴዎች በመጠባበቅ ፣ በማሳወቅ እና በማስታወቅ ነው የሚተገበረው። እነሱ የነገር ክፍል ናቸው። የጥበቃ ዘዴው አሁን ያለው ክር መቆለፊያውን እንዲለቅ ለመፍቀድ እና ሌላ ክር ለዕቃው ሁሉንም ዘዴ ማሳወቅ ወይም ማሳወቅ እስኪያሳውቅ ድረስ ይጠብቃል። የማሳወቂያ ዘዴው መቆለፊያውን የሚጠብቅ ነጠላ ክር ለማንቃት ይጠቅማል። ማሳወቂያው መቆለፊያው ላይ የሚጠብቁትን ሁሉንም ክሮች ያስነሳል።

በጃቫ_ስእል 02 ውስጥ በእንቅልፍ እና በመጠባበቅ መካከል ያለው ልዩነት
በጃቫ_ስእል 02 ውስጥ በእንቅልፍ እና በመጠባበቅ መካከል ያለው ልዩነት

ስእል 02፡ ካልኩሌተር ክፍል

በጃቫ ውስጥ በእንቅልፍ እና በመጠባበቅ መካከል ያለው ቁልፍ ልዩነት
በጃቫ ውስጥ በእንቅልፍ እና በመጠባበቅ መካከል ያለው ቁልፍ ልዩነት

ምስል 03፡ ዋና ዘዴ

የካልኩሌተር ክፍል ገመዱን ያራዝመዋል። የተመሳሰለው ብሎክ በአሂድ ዘዴ ውስጥ ነው። የ loop እና የማሳወቂያ ዘዴው በተመሳሰለው ብሎክ ውስጥ ነው። በዋናው ዘዴ ውስጥ የተፈጠረ ክር ምሳሌ እና የመነሻ ዘዴ በዚያ ምሳሌ ላይ ይጠራል። ዋናው ዘዴ ክሩ ማሳወቂያ እስኪሰጥ ድረስ ይጠብቃል. ፕሮግራሙን በሚሰራበት ጊዜ ዋናው ዘዴ የሩጫ ዘዴው ሙሉ በሙሉ እስኪፈፀም ድረስ ይጠብቃል እና የማሳወቂያ ዘዴን ይጠብቃል. የማሳወቂያ ዘዴው ከተጠራ በኋላ ዋናው ዘዴ መጠበቁን ያቆማል እና የቀረውን ኮድ መተግበር ይጀምራል. ዋናው የካልኩሌተር ክር እስኪጠናቀቅ ድረስ በመጠባበቅ ላይ ነው። በመጨረሻም፣ የድምሩ ውጤት ታትሟል።

የተመሳሰለ ብሎክ ከሌለ እና ዋናው ዘዴ እንደታች ኮድ ካለው ውጤቱን ዜሮ ያደርገዋል ምክንያቱም ሌላኛው ክር እስኪጠናቀቅ ድረስ እየጠበቀ አይደለም።

ካልኩሌተር t1=አዲስ ካልኩሌተር ();

t1። ጀምር ();

System.out.println (t1.sum)፤

በጃቫ ውስጥ በእንቅልፍ እና በመጠባበቅ መካከል ያለው ተመሳሳይነት ምንድነው?

ሁለቱም መተኛት እና መጠበቅ በጃቫ ውስጥ ባለብዙ ክር ንባብን ሲተገበሩ ጥቅም ላይ ሊውሉ የሚችሉ ዘዴዎች ናቸው

በጃቫ ውስጥ በእንቅልፍ እና በመጠባበቅ መካከል ያለው ልዩነት ምንድን ነው?

እንቅልፍ እና መጠበቅ በጃቫ

የእንቅልፍ ዘዴው የስርአት ቆጣሪዎች እና የጊዜ ሰሌዳ አዘጋጆች ትክክለኛነት እና ትክክለኛነት እንደተጠበቀ ሆኖ የአሁኑ ክር አፈጻጸምን ለተወሰነ ሚሊሰከንዶች እንዲቆም ያደርገዋል። የመቆያ ዘዴው አሁን ያለው ክር ሌላ ክር እስኪጠራ ድረስ እንዲቆይ ያደርገዋል ወይም ለነገሩ ሁሉንም ዘዴ ያሳውቃል።
ከመቆለፊያ ጋር
የእንቅልፍ ዘዴው በማመሳሰል ጊዜ በአንድ ነገር ላይ ያለውን መቆለፊያ አይለቅም። የመጠባበቅ ዘዴው በማመሳሰል ጊዜ መቆለፊያውን ይለቃል።
የአፈጻጸም ዘዴ
የእንቅልፍ ዘዴው አሁን ባለው ክር ላይ ነው የሚሰራው። የመጠባበቅ ዘዴ በእቃው ላይ ይጠራል።
የተቆራኘ ክፍል
እንቅልፉ የክር ክፍል ዘዴ ነው። መጠበቁ የነገር ክፍል ዘዴ ነው።
ማጠናቀቅ
የእንቅልፍ ሂደቱ የሚጠናቀቀው የተወሰነው ጊዜ ካለፈ በኋላ ነው። የመጠባበቅ ዘዴው ወደ ማሳወቂያ በመደወል ወይም ሁሉንም ዘዴዎች አሳውቆ ይቋረጣል።

ማጠቃለያ - እንቅልፍ እና መጠበቅ በጃቫ

በስርዓተ ክወናው ላይ የሚሰሩ ብዙ ሂደቶች አሉ። እያንዳንዱ ሂደት ብዙ ክሮች ሊኖረው ይችላል. ክር በስርዓተ ክወና ውስጥ በጣም ትንሹ የማስኬጃ አሃድ ነው። የጃቫ ፕሮግራሚንግ ቋንቋ ባለብዙ-ክር ንባብን ይደግፋል። ብዙ ክሮች በአንድ ጊዜ እንዲሰሩ ያስችላል። እንቅልፍ እና መጠበቅ ባለብዙ-ክርን ሲተገበሩ ሁለት ዘዴዎች ናቸው. በጃቫ ውስጥ በእንቅልፍ እና በመጠባበቅ መካከል ያለው ልዩነት ፣እንቅልፉ የወቅቱን ክር አፈፃፀም ለተወሰነው ሚሊሰከንዶች ቁጥር ለማገድ ጥቅም ላይ ይውላል ፣የጥበቃ ዘዴው ግን የአሁኑ ክር ማስታወቂያውን እስኪጠራ ድረስ ወይም ሁሉንም እስኪያሳውቅ ድረስ እንዲቆይ ለማድረግ ጥቅም ላይ ይውላል። የዕቃው ዘዴ።

የሚመከር: