Негизги айырмасы – Иштетүү жана Thread
Аткаруудагы программа процесс катары белгилүү. Процессти бир нече субпроцесстерге бөлүүгө болот. Мисалы, Microsoft Word процесси. Ошол эле учурда орфографиялык катаны жана грамматиканы текшерет. Бул субпроцесс. Бул субпроцесстер жиптер деп аталат. Multithreading - бул бир эле учурда бир нече жипти аткаруу процесси. Threaded колдонмолор ар кандай программалоо тилдерин колдонуу менен түзүлүшү мүмкүн. Runnable жана Thread Java программалоо менен байланышкан. Javaда Runnable интерфейсин ишке ашыруу же Thread классын кеңейтүү аркылуу жип түзүүнүн эки ыкмасы бар. Runnable программасын ишке ашырууда көптөгөн жиптер бир эле жип объектисин бөлүшө алат, ал эми Extending Thread классында ар бир жип аны менен байланышкан уникалдуу объектиге ээ. Бул Runnable жана Thread ортосундагы негизги айырма.
Runnable деген эмне?
Жип кээ бир мамлекеттерден өтөт. "Жаңы" жиптин жашоо циклинин башталышы. start() методу жаңы жипти чакыргандан кийин, ал иштетилүүчү болуп калат. Эгерде жипти пландоочу жипти тандаса, ал иштеп жаткан абалга өтөт. Жип абалды күтүп жатат, эгерде ал жип тапшырманы аткаруу үчүн башка жипти күтүп жатса. Жип ишти аяктагандан кийин, ал токтотуу абалына өтөт.
Жипти Runnable интерфейси аркылуу ишке ашырууга болот. Төмөнкү программаны караңыз.
01-сүрөт: Runnable интерфейсинин жардамы менен жип түзүү үчүн Java программасы
Жогорудагы программага ылайык, Runnable Demo классы Runnable интерфейсин ишке ашырат. run() методу Runnable интерфейсин ишке ашырган класстын ичинде. Бул жип үчүн кирүү чекити болуп саналат. Логика run() методунда. Негизги программада жип Runnable Demo классынан түзүлгөн объектти аныктоо аркылуу түзүлөт. Бул t1. start() ыкмасы t1 аркылуу чакырылат.
Төмөнкү программаны караңыз.
02-сүрөт: Runnable интерфейсин ишке ашыруу менен циклди аткаруу үчүн жипти түзүү үчүн Java программасы
Жогорудагы мисалга ылайык, Runnable Demo классы Runnable интерфейсин ишке ашырат. Жипти колдонуунун логикасы run() методунда жазылган. Негизги программада жип Runnable Demo классынан түзүлгөн объектти аныктоо аркылуу түзүлөт. Бул t1. Андан кийин, start() ыкмасы t1 аркылуу чакырылат.
Жип деген эмне?
Жипти түзүүнүн дагы бир ыкмасы - Thread классын кеңейтүү. Ал үч кадамдан турат. Биринчиси, классты Thread классын кеңейтүү катары жарыялоо. Андан кийин, run() ыкмасын жазуу керек. Ал жип аткарууга тийиш болгон кадамдардын ырааттуулугун камтыйт. Акырында жип объекти түзүлөт жана жиптин аткарылышын баштоо үчүн start() ыкмасы чакырылат. Төмөнкү программаны караңыз.
03-сүрөт: Thread классын кеңейтүүчү Java программасы
Жогорудагы программага ылайык, MyThread классы Thread классын кеңейтет. Бул иштетүү ыкмасын жокко чыгарат. run() методу жип тарабынан аткарыла турган логиканы камтыйт. Бул жипке кирүү чекити. Андан кийин жип объекти түзүлөт. Бул жип 1. Жип start() ыкмасы менен башталат. Ал run() ыкмасына чалуу аткарат.
Thread классын кеңейткен эки класстын үлгү программасы төмөнкүдөй.
04-сүрөт: Thread классын кеңейткен эки классы бар Java программасы
Жогорудагы программага ылайык, А жана В класстары Thread классын кеңейтүүдө. Эки класста тең run() методу бар. Негизги жип негизги() ыкмасын аткарат. Негизги жип өчө электе, ал жип1 жана жип2ди түзүп, баштайт. Негизги жип негизги ыкманын аягына жеткенде, үч жип параллелдүү иштеп жатат. Жиптер чыгарууну берген конкреттүү тартип жок. Жип башталгандан кийин, алар аткара турган тартипти аныктоо кыйын. Алар өз алдынча иштешет.
Runnable жана Thread ортосунда кандай окшоштуктар бар?
Экөө тең Java'да жип түзүү үчүн колдонуп жатышат
Runnable жана Thread ортосунда кандай айырма бар?
Runnable vs Thread |
|
Runnable – Java тилиндеги интерфейс, көптөгөн жиптерге бир жип объектисин бөлүшүүгө мүмкүндүк берген жипти түзүү. | Жип Java тилиндеги класс, анда ар бир жип аны менен байланышкан уникалдуу объектиге ээ жипти түзүү. |
Эстутум | |
Runnableде бир нече жиптер бир эле объектти бөлүшөт, андыктан эстутум азыраак талап кылынат. | Thread классында ар бир жип уникалдуу объект түзөт, ошондуктан көбүрөөк эстутумду талап кылат. |
Мүмкүнчүлүктү кеңейтүү | |
Runnable интерфейсин ишке ашыргандан кийин, ал классты узарта алат. | Жавада бир нече мурас колдоого алынбайт. Thread классын узарткандан кийин, ал башка классты кеңейте албайт. |
Кодду сактоо | |
Runnable интерфейси кодду колдоого алат. | Thread классында тейлөө көп убакытты талап кылат. |
Корытынды – Иштелет жана Thread
Бир эле учурда бир нече тапшырманы аткаруу үчүн процесс бир нече субпроцесстерге бөлүнөт. Бул субпроцесстер жиптер деп аталат. Жипти түзүү Runnable интерфейсин ишке ашыруу же Thread классын кеңейтүү аркылуу жасалышы мүмкүн. Thread классын кеңейтүү оңой, бирок бул жакшыраак Объектке багытталган программалоо практикасы эмес. Runnable программасын ишке ашырууда көптөгөн жиптер бир эле жип объектисин бөлүшө алышат, ал эми Thread классын кеңейтүүдө ар бир жип аны менен байланышкан уникалдуу объектиге ээ. Бул Runnable жана Thread ортосундагы айырма. Thread классында бир нече объектти түзүү көбүрөөк эстутумду талап кылышы мүмкүн.
Runnable vs Threadдин PDF форматын жүктөп алыңыз
Сиз бул макаланын PDF версиясын жүктөп алып, шилтеме эскертүүсүнө ылайык оффлайн максаттарында колдоно аласыз. Сураныч, PDF версиясын бул жерден жүктөп алыңыз Runnable жана Thread ортосундагы айырма