<prompt> Anzisha programu ya Java inayotumia usomaji mwingi ili kukokotoa jumla ya nambari zote sawia na nambari zisizo za kawaida kando ndani ya safu mahususi ya nambari kamili. Programu inapaswa kuonyesha matokeo mara tu nyuzi zote mbili zimekamilisha kazi zao.  <response>: Hapa kuna programu ya Java ambayo hutumia maandishi mengi kuhesabu jumla ya nambari zote sawa na nambari zisizo za kawaida kando ndani ya safu fulani ya nambari: javadarasa la umma EvenOddSum utupu tuli wa umma String args int start 1; int mwisho 100; Thread evenThread new Threadnew SumEvenstart, end; Thread oddThread Thread mpyaSumOdd mpyaanza, mwisho; evenThread.start; oddThread.start; jaribu evenThread.join; oddThread.join; catch InterruptedException e e.printStackTrace; System.out.printlnJumla ya nambari sawa: SumEven.getSum; System.out.printlnJumla ya nambari zisizo za kawaida: SumOdd.getSum; darasa la SumEven hutumia Runnable kuanza kwa int ya kibinafsi; mwisho wa nia ya kibinafsi; tuli ya kibinafsi kwa muda mrefu; Public SumEvenint start, int end this.start anza; hii.mwisho mwisho; Batilisha utupu wa umma run jumla 0; kwa int i anza; i mwisho; i ikiwa i 2 0 jumla i; tuli ya umma getSum jumla ya kurudi; darasa la SumOdd hutumia Runnable kuanza kwa int ya kibinafsi; mwisho wa nia ya kibinafsi; tuli ya kibinafsi kwa muda mrefu; umma SumOddint start, int end this.start anza; hii.mwisho mwisho; Batilisha utupu wa umma run jumla 0; kwa int i anza; i mwisho; i ikiwa i 2 ! 0 jumla i; tuli ya umma getSum jumla ya kurudi; Mpango huu unafafanua madarasa mawili, SumEven na SumOdd, ambayo yanatekeleza kiolesura cha Runnable. Kila darasa huhesabu jumla ya nambari sawa au isiyo ya kawaida ndani ya safu fulani.Kwa njia kuu, tunaunda nyuzi mbili kwa kila kazi na kuzianza. Kisha sisi hutumia mbinu ya jiunge ili kusubiri minyororo yote miwili ikamilishe kazi zao kabla ya kuonyesha matokeo. 