blacha23 Geschrieben 13. November 2008 Geschrieben 13. November 2008 hey, basierend auf dem Graphen soll ich ein Programm in Pseudocode schreiben, das soweit wie möglich Funktionen parallel ausführt http://img219.imageshack.us/my.php?image=techgi3qc7.jpg ich kann leider kein fork/join u. parbegin/parend benutzen. Bis jetzt ist mir klar geworden, dass 2 Aktionen nebenläufig sind, wenn keine von ihnen Voraussetzung der anderen ist. Nun weiss ich nicht wie ich das schreiben soll.. danke im Voraus für welche Hinweise Zitieren
flashpixx Geschrieben 13. November 2008 Geschrieben 13. November 2008 hey, basierend auf dem Graphen soll ich ein Programm in Pseudocode schreiben, das soweit wie möglich Funktionen parallel ausführt Warum postest Du dann in C/C++ wenn es Pseudocode sein soll? Ich verstehe aber definitiv noch nicht so ganz das Problem. Im Grunde kann ich das z.B. via Threads lösen, die synchronisiert werden Phil Zitieren
Klotzkopp Geschrieben 13. November 2008 Geschrieben 13. November 2008 ich kann leider kein fork/join u. parbegin/parend benutzen. Ich finde es etwas seltsam, dass du bei einer Pseudocode-Aufgabe irgendwelche konkreten Implementierungen explizit nicht benutzen darfst. Was darfst du denn benutzen? Hast du da ähnlich konkrete Anweisungen? Zitieren
blacha23 Geschrieben 13. November 2008 Autor Geschrieben 13. November 2008 (bearbeitet) threads sind erlaubt, int main (void){ int a,b,c,d,e,f,g,h,i a createThread (b,c) createThread (d,e) f createThread (g,h) i } so was wird gehen oder eher nicht? Bearbeitet 13. November 2008 von blacha23 Zitieren
Klotzkopp Geschrieben 13. November 2008 Geschrieben 13. November 2008 so was wird gehen oder eher nicht?Du darfst nicht vergessen, an den Stellen, an denen die parallelen Operationen wieder zusammenlaufen, auf die jeweiligen Threads zu warten. Zitieren
blacha23 Geschrieben 13. November 2008 Autor Geschrieben 13. November 2008 int main (void){ int a,b,c,d,e,f,g,h,i a createThread1 (b,c) wait Thread2,Thread3 createThread2 (d,e) wait Thread3 f createThread3 (g,h) i } Zitieren
Klotzkopp Geschrieben 13. November 2008 Geschrieben 13. November 2008 Du brauchst nur einen neuen Thread für b oder c, nicht für beide. Außerdem ist es nicht sonderlich sinnvoll, auf einen Thread zu warten, bevor du ihn startest. Zitieren
blacha23 Geschrieben 13. November 2008 Autor Geschrieben 13. November 2008 int main (void){ int a,b,c,d,e,f,g,h,i a createThread1 ( wait Thread1 createThread2 © wait Thread2 createThread3 (d) wait Thread3 createThread4 (e) wait Thread4 f createThread5 (g) wait Thread5 createThread6 (h) wait Thread5 i } na ja, aber wie führe ich dann die threads die gewartet haben mit den anderen zusammen? Zitieren
Klotzkopp Geschrieben 13. November 2008 Geschrieben 13. November 2008 int main (void){ int a,b,c,d,e,f,g,h,i a createThread1 ( wait Thread1 createThread2 © wait Thread2 createThread3 (d) wait Thread3 createThread4 (e) wait Thread4 f createThread5 (g) wait Thread5 createThread6 (h) wait Thread5 i }Wenn du jeden Thread startest und gleich danach darauf wartest, führst du doch wieder nur alles nacheinander aus. Ich würde das so machen: Ausführen: aThread starten: bAusführen: cWarten auf b-Thread usw. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.