Advertisement
Guest User

Untitled

a guest
Jun 26th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.31 KB | None | 0 0
  1. /*
  2.  * MatrixSys.java
  3.  *
  4.  * Created on 10 Ноябрь 2010 г., 16:19
  5.  */
  6.  
  7. package parallels.pipeline;
  8. import java.applet.*;
  9. import java.awt.*;
  10. import java.util.*;
  11.  
  12. /**
  13.  *
  14.  * @author  Student
  15.  */
  16.  
  17. interface DataSys {
  18.     int n = 300;
  19.     int s[] = new int[n];
  20.     int a[][] = new int[n][n];
  21.     int b[] = new int[n];
  22.     long time[] = new long[n];
  23. }
  24.  
  25. public class MatrixSys extends java.applet.Applet implements DataSys {
  26.     Thread thr;
  27.     public void init() {
  28.         for (int m = 0; m <= n - 1; m++) {
  29.             for(int p=0; p <= n-1; p++) {
  30.                 a[m][p] = 1;
  31.                 b[p] = 1;
  32.             }
  33.         }
  34.         try {
  35.             for(int i=0; i <= n-1; i++) {
  36.                 thr = new Thread(new ProcSys(i));
  37.                 thr.start();
  38.                 thr.join();
  39.             }
  40.             Thread.sleep(1);
  41.         } catch(InterruptedException e) {};
  42.         add(new Label(n+"Tpmax="+new MaxTime().max()));
  43.  
  44.     }
  45.     /** Initialization method that will be called after the applet is loaded
  46.      *  into the browser.
  47.      */
  48.  
  49.    
  50.     // TODO overwrite start(), stop() and destroy() methods
  51. }
  52.  
  53. class ProcSys implements Runnable, DataSys   {
  54.     int i;
  55.     ProcSys(int i) {
  56.         this.i = i;
  57.     }
  58.    
  59.        
  60.    
  61.     public void run() {
  62.         long t1 = new Date().getTime();
  63.         new Index(i,i).index();
  64.         long t2 = new Date().getTime();
  65.         time[i] = t2 - t1;
  66.        
  67.     }
  68.    
  69. }
  70. class Index implements DataSys {
  71.     int i, j;
  72.     Index(int i, int j) {
  73.         this.i = i;
  74.         this.j = j;
  75.     }
  76.     public void index() {
  77.         for(int t=0; t <= n-1; t++) {
  78.             j = (n+i-t) % n;
  79.             new Step(i,j).mult();
  80.         }
  81.     }
  82. }
  83.  
  84. class Step implements DataSys {
  85.     int i, j;
  86.     Step(int i, int j) {
  87.         this.i = i;
  88.         this.j = j;
  89.        
  90.     }
  91.     synchronized void mult(){
  92.         s[i] += a[i][j] * b[j];
  93.         try {
  94.             Thread.sleep(1);
  95.         } catch(InterruptedException e) {}
  96.         //System.out.println("S"+"["+i+"]=" + s[i]);
  97.     }
  98. }
  99.  
  100.  
  101. class MaxTime implements DataSys {
  102.     public long max() {
  103.         long tpmax = time[0];
  104.         for (int i=1; i<=n-1;i++)
  105.             if(tpmax<=time[i])
  106.                 tpmax = time[i];
  107.         return tpmax;
  108.     }
  109.    
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement