java:concurrency_intro

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
java:concurrency_intro [2015/03/24 12:47]
gthanos [Νήματα]
java:concurrency_intro [2015/03/24 13:03]
gthanos [Σταματώντας την εκτέλεση ενός νήματος μέσω της μεθόδου sleep()]
Line 17: Line 17:
 Υπάρχουν δύο παρεμφερείς τρόποι για την δημιουργία και εκτέλεση ενός νήματος. Και οι δύο παρατίθενται παρακάτω:​ Υπάρχουν δύο παρεμφερείς τρόποι για την δημιουργία και εκτέλεση ενός νήματος. Και οι δύο παρατίθενται παρακάτω:​
  
-<code java>+<​code ​java HelloRunnable.java>
 public class HelloRunnable implements Runnable { public class HelloRunnable implements Runnable {
  
Line 30: Line 30:
 </​code>​ </​code>​
  
-<code java>+<​code ​java HelloThread.java>
 public class HelloThread extends Thread { public class HelloThread extends Thread {
  
Line 42: Line 42:
 } }
 </​code>​ </​code>​
 +
 +Παρατηρείστε ότι και τα δύο παραπάνω παραδείγματα καλούν την μέθοδο [[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​lang/​Thread.html#​start()|Thread.start()]]. Από τα δύο το πρώτο είναι πιο γενικό,​ καθώς δεν απαιτείται η κλάση σας να είναι απόγονος της κλάσης [[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​lang/​Thread.html|Thread]].
 +
 +===== Σταματώντας την εκτέλεση ενός νήματος μέσω της μεθόδου sleep() =====
 +
 +Η μέθοδος sleep δίνει την δυνατότητα σε ένα νήμα να σταματήσει την εκτέλεση του για ένα συγκεκριμένο χρονικό διάστημα. Κατά το διάστημα αυτό, άλλες διεργασίες ή threads της υφιστάμενης διεργασίες μπορούν να εκτελεστούν. Η χρονική διάρκεια κατά την οποία θα παύσει η εκτέλεση ενός thread μπορεί να μην είναι ακριβώς η χρονική διάρκεια που επιλέξαμε,​ καθώς ο χρονοπρογραμματισμός των threads εξαρτάται και από το λειτουργικό σύστημα. Δείτε το παρακάτω παράδειγμα κλήσης της μεθόδου sleep()
 +
 +<code java SleepMessages.java>​
 +public class SleepMessages {
 +    public static void main(String args[])
 +        throws InterruptedException {
 +        String importantInfo[] = {
 +            "Mares eat oats",
 +            "Does eat oats",
 +            "​Little lambs eat ivy",
 +            "A kid will eat ivy too"
 +        };
 +
 +        for (int i=0; i<​importantInfo.length;​ i++) {
 +            //Pause for 2 seconds
 +            Thread.sleep(2000);​
 +            //Print a message
 +            System.out.println(importantInfo[i]);​
 +        }
 +    }
 +}
 +</​code>​
 +
 +===== Επανενεργοποίηση ενός νήματος μέσω της μεθόδου interrupt() =====
 +
 +Μία διακοπή (interrupt) αποτελεί ένδειξη προς την διεργασία να σταματήσει να κάνει αυτό που ​
 +
 +
  
  
java/concurrency_intro.txt · Last modified: 2016/02/26 11:15 (external edit)