1 / 14

LOENG 14 16.12.02

LOENG 14 16.12.02. Lõimed. Süsteemne lõimeklass. Thread start ( ) sleep ( ) interrupt ( ). Kasutaja tehtud lõimeklass. OmaetteTegutseja public void run ( ){ < omaette tehtavad tööd > }. Protsess1. OmaetteTegutseja public void run ( ){ < omaette tehtavad tööd >

pravat
Download Presentation

LOENG 14 16.12.02

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. LOENG 14 16.12.02 Lõimed Lõimed

  2. Süsteemne lõimeklass Thread start( ) sleep( ) interrupt( ) Kasutaja tehtud lõimeklass OmaetteTegutseja public void run( ){ <omaette tehtavad tööd> } Lõimed

  3. Protsess1 OmaetteTegutseja public void run( ){ <omaette tehtavad tööd> }//run . . . OmaetteTegutseja t = new OmaetteTegutseja(...); . . . t.start( ); . . . lõim Protsess1 Protsess2 Lõimed

  4. class HRJuhtija extends Thread{ Raam r; // juhitav raam public void run(){ for( ; ; ){ Punkt p = r.getLocation( ); // vana koht . . . // muuta p r.setLocation(p); // uus koht r.show( ); // näidata uuel kohal . . . // viivitus }//for }//run }// HRJuhtija Lõimed

  5. Klass Mullivann Peameetod . . . Raam hR = new Raam("LENDAV HOLLANDLANE", new Point(800, 800), new Dimension(260, 60)); HRJuhtija hRJ = new HRJuhtija(hR, 1000); hRJ.start(); . . . Lõimed

  6. lõimeklass Mull lõim joonistada( ) Thread start( ) sleep( ) interrupt( ) lõim Mull lõim joonistada( ) Hulpija mull tahvel run( ) Lõimed

  7. import java.awt.*; // --> Rectangle, Graphics import java.util.*; // --> Random class Hulpija extends Thread{ int sammx = 2; int sammy = 2; Mull mull; Tahvel tahvel; boolean peatada; Hulpija(Mull m, Tahvel t){// konstruktor mull = m; tahvel = t; peatada = false; }//konstruktor Lõimed

  8. public void run(){ Random juhu = new Random(); Graphics g = tahvel.getGraphics(); g.setXORMode(tahvel.TAUST); g.translate(tahvel.start.x, tahvel.start.y); for(;;){ if(peatada){ return; } // kustutada sealt, kus oli mull.joonistada(g); Lõimed

  9. // uus värv ja suurus int muuta = 15&juhu.nextInt(); if((muuta == 3) || (muuta == 7)) mull.uusVärv(); if(muuta == 7){ mull.uusVärv(); mull.width += 2; mull.height += 2; } // kui liiga suur, siis lõpetada if(mull.width > 3*mull.LAIUS){ // joonistada väiksena: mull.width = 5; mull.height = 5; mull.joonistada(g); mull.lõim = null; peatada = true; continue; } Lõimed

  10. // uus asukoht: int suund = 3&juhu.nextInt(); if(suund != 0) suund = 2 - suund; mull.x += suund*sammx; suund = 3&juhu.nextInt(); if(suund != 0) suund = 2 - suund; mull.y += suund*sammy; Lõimed

  11. // kui liiga vanni ääres, siis lõpetada: Rectangle r = new Rectangle(tahvel.vann); r.grow(-tahvel.vann.SERVA_ALA, -tahvel.vann.SERVA_ALA); if(!(r.intersection(mull)).equals(mull)){ // joonistada väiksena: mull.width = 5; mull.height = 5; mull.joonistada(g); mull.lõim = null; peatada = true; continue; }//if Lõimed

  12. // joonistada uuel kohal if(mull.width < mull.LAIUS){ // kui lõhkenu pandi jälle hulpima mull.width = mull.LAIUS; mull.height = mull.KÕRGUS; } mull.joonistada(g); // viivitus: try{ sleep(100); } catch(InterruptedException e){} }//for }//run }//Hulpija Lõimed

  13. Klass HiireKuular public void mouseClicked(MouseEvent e){ // hiireklo~psu koht: Point p = new Point(e.getX(), e.getY()); if(e.isMetaDown()){// parem klahv // leida mull, millel klo~psati Mull m = tahvel.vann.osutatudMull( p.x - tahvel.start.x, p.y - tahvel.start.y); if(m != null) tahvel.vann.hulpima(m, tahvel); return; }//if parem klahv . . . Lõimed

  14. Klass Vann public void hulpima(Mull m, Tahvel t){ // panna mull m hulpima if(m.lõim = = null){ m.lõim = new Hulpija(m, t); m.lõim.start(); } } Lõimed

More Related