10.12.2012 Views

Κεφάλαιο 1 - Nemertes

Κεφάλαιο 1 - Nemertes

Κεφάλαιο 1 - Nemertes

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ΑΝΑΠΤΥΞΗ ΚΩ∆ΙΚΑ ΜΟΡΙΑΚΗΣ ∆ΥΝΑΜΙΚΗΣ<br />

}<br />

230<br />

run = false;<br />

particlesProxy.extractCompleteModel(runID + " - Final State.csv");<br />

if (DEBUG)<br />

System.out.println("FINAL STATE");<br />

if (DEBUG)<br />

System.out.println(particlesProxy.getInformation());<br />

if (DEBUG)<br />

System.out.println("###############################################");<br />

Στη φάση αυτή καταγράφεται σε αρχείο η τελική κατάσταση του συστήµατος. Η εξέλιξη του<br />

πειράµατος γίνεται καλώντας συνεχόµενα τη συνάρτηση processCurrentPhase, που<br />

παρουσιάστηκε παραπάνω. Αυτό µπορεί να γίνεται είτε αυτόµατα είτε χειροκίνητα για<br />

καλύτερο έλεγχο των απότελεσµάτων. Όταν η επεξεργασία γίνεται αυτόµατα<br />

χρησιµοποιούνται οι συναρτήσεις doWork και doWorkImpl, ενώ κατά τη χειροκίνητη<br />

διαδικασία χρησιµοποιείται η συνάρτηση nextStep.<br />

public void doWork()<br />

{<br />

Thread t = new Thread(new Runnable()<br />

{<br />

public void run()<br />

{<br />

doWorkImpl();<br />

}<br />

});<br />

if (MDParameters.THREADS>1)<br />

{<br />

pool = Executors.newCachedThreadPool();<br />

}<br />

t.start();<br />

}<br />

Εδώ δηµιουργείται ένα νήµα που καλεί τη συνάρτηση doWorkImpl, και ανάλογα µε τις<br />

παραµέτρους του πειράµατος αρχικοποιείται ο µηχανισµός πολυνηµατικής επεξεργασίας.<br />

public void doWorkImpl()<br />

{<br />

while (run)<br />

{<br />

if (pause)<br />

{<br />

try<br />

{

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!