11-LABORATORIYA ISHI
Mavzu: Tarmoqda ko‘poqimlilik asosida ishlovchi dasturni yaratish
Ishning maqsadi:
Talabalarda Java dasturlash tilining java.net.*, java.io.* va java.util.* paketlari klasslaridan foydalanib tarmoqda ko‘poqimlilik asosida ishlovchi dasturni yaratish bo‘yicha amaliy ko‘nikmalar hosil qilish.
Nazariy qism:
Javada koʻpoqimlilik bu bir vaqting oʻzida bir nechta oqimlarning bajarilish jarayoni. Oqim jarayonning eng kichik qismidir. Koʻpoqimlilik va koʻpjarayonlilik koʻpvazifalilikka erishish uchun foydalaniladi. Ammo biz koʻpjarayonlilik oʻrniga koʻpoqimlilikdan foydalanamiz, chunki oqimlar umumiy xotirani taqsimlab ishlatadi. Javada koʻpoqimlilik asosan oʻyinlar, animatsiyalarda foydalaniladi.
Koʻpvazifalilik bir nechta vazifalarning bir vaqtning oʻzida bajarilish jarayoni hisoblanadi. Koʻpvazifalilik quyidagi ikki xil yoʻl bilan erishiladi:
- jarayonga asoslangan koʻpvazifalilik;
- oqimga asoslangan koʻpvazifalilik;
1. Jarayonga asoslangan koʻpvazifalilikka quyidagilar kiradi:
- xar bir jarayon xotirada oʻzining manziliga ega;
- jarayon og‘ir massaga ega;
- jarayonlar oʻrtasidagi aloqaning narxi qimmat;
- bir jarayondan ikkinchi jarayonga oʻtishda vaqt talab qiladi.
2. Oqimga asoslangan koʻpvazifalilikka quyidagilar kiradi:
- oqimlar bitta manzildan foydalanishadi;
- oqimlar yengil massaga ega;
- oqimlar oʻrtasidagi aloqaning narxi arzon.
Oqim yengil massaga ega jarayon osti hisoblanadi, jaryonning eng kichik qismi. Oqimlar mustaqil xisoblanadi, agar bitta oqim bajarilishi buzilsa boshqa oqimga ta’sir qilmaydi. Oqimlar umumiy xotiradan foydalanishadi. Operatsion tizimda koʻp jarayonlar boʻlishi va bitta jarayon bir nechta oqimlarni oʻz ichiga olishi mumkin.
Oqimning yashash sikli:
1. Yaratilishi.
2. Ishga tushishi.
3. Ishlashi.
4. Ishning toʻxtatilishi.
5. Tugatilishi.
Oqim beshta xolatning bittasida boʻlishi mumkin. Javada oqim yashash sikli JVM tomonidan boshqariladi.
Oqimlar ikkita yoʻl bilan yaratiladi:
1. Thread klassi orqali.
2. Runnable interfeysi asosida.
Thread klassi yordamida oqim yaratish:
class Multi extends Thread{
public void run(){
System.out.println("Oqim ishga tushdi...");
}
public static void main(String args[]){
Multi t1=new Multi();
t1.start();
}
}
NATIJA: Oqim ishga tushdi...
Runnable interfeysi asosida oqim yaratish:
class Multi3 implements Runnable{
public void run(){ System.out.println("Oqim ishga tushdi...");
}
public static void main(String args[]){
Multi3 m1=new Multi3();
Thread t1 =new Thread(m1);
t1.start();
}
}
Javada Sleep metodi
Thread klassining sleep() metodi oqimni qanchadir vaqtga uxlatish uchun foydalaniladi.
sleep() metodining sintaksisi:
- public static void sleep(long milliseconds) throws InterruptedException
- public static void sleep(long milliseconds, int nanos) throws InterruptedException
Misol:
class TestSleepMethod1 extends Thread{
public void run(){
for(int i=1;i<5;i++){
try{Thread.sleep(500);}
catch(InterruptedException e){System.out.println(e);}
System.out.println(i);
}
}
public static void main(String args[]){
TestSleepMethod1 t1=new TestSleepMethod1();
TestSleepMethod1 t2=new TestSleepMethod1();
t1.start();
t2.start();
} }
Javada ThreadGroup
Java yagona obyektda bir nechta oqimlar guruhini ta’minlaydi.
Java thread group java.lang.ThreadGroup klassi asosida tadbiq etiladi.
|