Junior
Proses və iş parçacığı nədir? Onların fərqləri nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Proses işləyən proqramdır və öz ünvan sahəsi, resurslar (fayl təsvirçiləri, şəbəkə bağlantıları) və icra kontekstinə malikdir.
İş parçası (thread) isə proses daxilində ən kiçik icra vahididir. Bir proses bir və ya bir neçə iş parçası ehtiva edə bilər, onlar resursları paylaşırlar, lakin öz çağrı yığını, icra konteksti və əmrlər sayğacı var.
Əsas fərqlər:
| Xüsusiyyət | Proses | İş parçası (thread) |
|---|---|---|
| İzolyasiya | Tam. Bir proses digərinə təsir etmir. | Qismən. İş parçaları proses resurslarını paylaşır. |
| Məlumat mübadiləsi | IPC vasitəsilə (interproses əlaqə). | Yüngül. Proses daxilində ümumi dəyişənlər vasitəsilə. |
| Kontekst dəyişməsi | Bahalı. Bütün proses vəziyyətinin saxlanması və bərpasını tələb edir. | Daha ucuz. İş parçasının vəziyyətinin saxlanması və bərpasını tələb edir. |
| Yaradılması | Bahalı. Resursların ayrılmasını tələb edir. | Daha ucuz. Yığın ayırmağı tələb edir. |
| Sonlandırılması | Prosesin sonu bütün iş parçalarını da sonlandırır. | İş parçasının sonu digər iş parçalarına və ya prosesə təsir etmir. |
Java-da proses yaratma nümunəsi (xarici əmr):
// Java
Process process = Runtime.getRuntime().exec("ls -l");
// Proseslə işləmək: giriş/çıxış və s.
Java-da iş parçası yaratma nümunəsi:
// Java
Runnable task = () -> {
System.out.println("Salam iş parçasından: " + Thread.currentThread().getName());
};
Thread thread = new Thread(task);
thread.start(); // İş parçasını işə sal