Parallelverarbeitung
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Scheme</language>
Die folgenden Aufgaben beziehen sich direkt auf die in der Vorlesung verwendete Linienführung und die vorgestellten Beispiele. Es empfiehlt sich also das Skript durchzuarbeiten, die Beispiele zu erproben und die folgenden Aufgaben an den passenden Stellen zu bearbeiten.
{|width="100%"
|-valign="top"
|width=600|<canvas width=600 height=300></canvas>||<run>
(import threading)
(clear canvas1)
(home turtle1)
(move turtle1 300 300)
(define threaded-tree
(lambda (side turtle)
(cond
[(< side 5) (show turtle)]
[else
(sleep 1000)
(display turtle1)
(forward turtle side)
(let ([t1 (clone turtle)] [t2 (clone turtle)])
(left t1 45)
(right t2 45)
(thread/start(thread/new
(lambda () (threaded-tree (/ side 2) t2))))
(thread/start(thread/new
(lambda () (threaded-tree (/ side 2) t1))))
))]))
;(hide turtle1)
(threaded-tree 100 turtle1)
</eval>
|}
<run>;ThreadTest</eval>