User Tools

Site Tools


lab7

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
lab7 [2016/02/24 14:05] – created francklab7 [2018/03/11 23:19] (current) franck
Line 1: Line 1:
-Consider the following app+====== Lab 7 ====== 
-<html+ 
-<pre> +In this lab, we consider a concurrent stack.  We start from the following skeleton of a sequential stack.  Note that the class Stack does not implement a stack correctly
-public class ComputeSquareRoot +<code java
-    public static void main(String[] args) { +/** 
-          double data 3.1415926+ * A stack.  It stores integers. 
-          System.out.println("The square root of + data + " is " + StrictMath.sqrt(data)); + * 
-    }+ * @author 
 + */ 
 +public class Stack 
 +  private int[] content; 
 +  private int size; 
 + 
 +  /* 
 +   * The maximal number of integers that can be stored in a stack. 
 +   */ 
 +  private final static int CAPACITY = 5; 
 + 
 +  /** 
 +   * Initializes this stack to be empty. 
 +   */ 
 +  public Stack() { 
 +    this.content = new int[Stack.CAPACITY]
 +    this.size = 0; 
 +  } 
 + 
 +  /** 
 +   * Pushes the given integer onto this stack. 
 +   * 
 +   * @param value the integer to be pushed onto this stack. 
 +   */ 
 +  public void push(int value) { 
 +    this.content[this.size] value; 
 +    this.size++
 +    System.out.printf("Push %d\n", value); 
 +  } 
 + 
 +  /** 
 +   * Pops the top of this stack and returns the integer. 
 +   * 
 +   * @return the top of this stack. 
 +   */ 
 +  public int pop() 
 +    this.size--; 
 +    int value = this.content[this.size]; 
 +    System.out.printf("Pop %d\n", value); 
 +    return value; 
 +  }
 } }
-</pre+</code> 
-</html>+ 
 +Implement the following classes. 
 +  * The class Pusher.  Each Pusher object is a Thread that pushes the integers 0, 1, ..., 9 onto a stack.  The stack is provided as an argument to the constructor of the Pusher class.  The jar file {{:pop.jar|pop.jar}} contains the class Popper.  Each Popper object is a Thread that pops ten integers from a stack.  The stack is provided as an argument to the constructor of the Popper class. 
 +  * The class Stack.  This class is based on the above skeleton and allows Threads to concurrently call the push and pop methods on the stack. 
 +  * The class Main.  This class only contains a main method.  In the main method, a number of Popper and Pusher objects are created (for example, 10 Poppers and 5 Pushers) and all these Threads are run concurrently. 
 + 
 +To receive feedback, submit your code using the submit command:\\ 
 +<code> 
 +submit 4315 lab7 <name of class>.java 
 +</code> 
 + 
 + 
 + 
  
-  - Develop a model class so that the above app can be verified with JPF.  [[https://en.wikipedia.org/wiki/Methods_of_computing_square_roots|This]] Wikipedia page might be helpful. 
-  - Develop a native peer so that the above app can be verified with JPF. 
  
lab7.1456322711.txt.gz · Last modified: 2016/02/24 14:05 by franck

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki