Java oqimlari. Java tili o'rnatilgan ko'p tarmoqli qo'llab-quvvatlash bilan ishlab chiqilgan. Mavzular Java texnologiyasining asosiy elementlaridan biridir; ular til (sintaktik) darajasida va Java virtual mashina va sinf kutubxonalari darajasida qo'llab-quvvatlanadi. Ko'pgina holatlarda, Java iplari POSIX iplariga (pthreads) juda o'xshaydi. Java sinf kutubxonalari ipni ishga tushirish, bajarish va to'xtatish, shuningdek uning holatini tekshirish uchun keng
Java kodidan tuzilgan yuqoridagi masalaning yechimi
public class PI1 {
static long num_steps = 100000;
static double step;
static double sum = 0.0;
static int part_step;
static class PITask extends Thread {
int part_number;
double x = 0.0;
double sum = 0.0;
public PITask(int part_number) {
this.part_number = part_number;
}
public void run() {
for (int i = part_number; i < num_steps; i += part_step)
{
x = (i + 0.5) * step;
sum += 4.0 / (1.0 + x * x);
}
}
}
public static void main(String[] args) {
;
int i;
double pi;
step = 1.0 / (double) num_steps;
part_step = Runtime.getRuntime().availableProcessors();
PITask[] part_sums = new PITask[part_step];
for (i = 0; i < part_step; i++) {
(part_sums[i] = new PITask(i)).start();
}
for (i = 0; i < part_step; i++) {
try {
part_sums[i].join();
} catch (InterruptedException e) {
}
sum += part_sums[i].sum;
}
pi = step * sum;
System.out.println(pi);
}
}
19-mavzu: Ko’pmasalalik, dispetcherizatsiya. Ko’pmasalalik modellari
Ko’pmasalalik (inglizcha multithreading) - bir nechta vazifalarni parallel (yoki psevdoparallel) qayta ishlash qobiliyatini ta'minlash uchun operatsion tizimning ishlash vaqti yoki ish vaqti. Operatsion tizimning haqiqiy ko'paytmasi faqat taqsimlangan hisoblash tizimlarida mumkin.
Ikki xil ko’pmasalalik mavjud [1]:
Jarayonli ko’pmasalalik (jarayonlar asosida - bir vaqtning o'zida ishlaydigan dasturlar). Bu erda dastur operatsion tizimni rejalashtiruvchisi boshqarishi mumkin bo'lgan boshqariladigan kodning eng kichik elementidir. Ko'pgina foydalanuvchilarga yaxshiroq ma'lum (matn muharririda ishlash va musiqa tinglash).
Ko'p tarmoqli oqim (oqimga asoslangan). Boshqariladigan kodning eng kichik elementi - bu oqim (bitta dastur bir vaqtning o'zida 2 yoki undan ortiq vazifani bajarishi mumkin).
Ko’poqimlilik bu ko'p tarmoqli ishning ixtisoslashgan shakli [1].
Do'stlaringiz bilan baham: |