public class Factorial implements Runnable {
private int n;
public Factorial(int n) {
this.n = n;
}
public int compute(int n) {
// ... the code to compute factorials
}
public void run() {
System.out.print("Factorial of " + String.valueOf(this.n) + ":")
System.out.println(this.compute(this.n));
}
public static void main(String[] args) {
Factorial f = new Factorial(25);
Factorial g = new Factorial(10);
Thread t1 = new Thread(f);
Thread t2 = new Thread(f);
t1.start();
t2.start();
}
}
//Another way of using the Runnable interface, which is even more succinct, is to use lambda expressions
public class Factorial {
public int compute(int n) {
// ... the code to compute factorials
}
public static void main(String[] args) {
Factorial f = new Factorial();
// the lambda function replacing the run method
new Thread(() -> {
System.out.println(f.compute(25));
}).start();
// the lambda function replacing the run method
new Thread(() -> {
System.out.println(f.compute(10));
}).start();
}
}