// concurrency/Ex1.java
// TIJ4 Chapter Concurrency, Exercise 1, page 1120
/** Implement a Runnable. Inside run(), print a message, and then call yield().
* Repeat this three times, and then return from run(). Put a startup message in
* the constructor and a shutdown message when the task terminates. Create a
* number of these tasks and drive them using threads.
**/
class Ex1RunnerA implements Runnable {
public Ex1RunnerA() {
System.out.println("Constructing Ex1RunnerA");
}
public void run() {
for(int i = 0; i < 3; i++) {
System.out.println("Hi from Ex1RunnerA");
Thread.yield();
}
System.out.println("Ex1RunnerA task complete.");
return;
}
}
class Ex1RunnerB implements Runnable {
public Ex1RunnerB() {
System.out.println("Constructing Ex1RunnerB");
}
public void run() {
for(int i = 0; i < 3; i++) {
System.out.println("Hi from Ex1RunnerB");
Thread.yield();
}
System.out.println("Ex1RunnerB task complete.");
return;
}
}
class Ex1RunnerC implements Runnable {
public Ex1RunnerC() {
System.out.println("Constructing Ex1RunnerC");
}
public void run() {
for(int i = 0; i < 3; i++) {
System.out.println("Hi from Ex1RunnerC");
Thread.yield();
}
System.out.println("Ex1RunnerC task complete.");
return;
}
}
public class Ex1 {
public static void main(String[] args) {
Thread ta = new Thread(new Ex1RunnerA());
Thread tb = new Thread(new Ex1RunnerB());
Thread tc = new Thread(new Ex1RunnerC());
ta.start();
tb.start();
tc.start();
}
}
// concurrency/Ex2.java
// TIJ4 Chapter Concurrency, Exercise 2, page 1120
/** Following the form of generics/Fibonacci.java, create a task that produces
* a sequence of n Fibonacci numbers, where n is provided to the constructor
* of the task. Create a number of these tasks and drive them using threads.
**/
import static org.greggordon.tools.Print.*;
class Ex2FibonacciA implements Runnable {
private int n = 0;
public Ex2FibonacciA(int n) {
this.n = n;
}
private int fib(int x) {
if(x < 2) return 1;
return fib(x - 2) + fib(x - 1);
}
public void run() {
for(int i = 0; i < n; i++)
print(fib(i) + " ");
println();
}
}
class Ex2FibonacciB implements Runnable {
private int n = 0;
public Ex2FibonacciB(int n) {
this.n = n;
}
private int fib(int x) {
if(x < 2) return 1;
return fib(x - 2) + fib(x - 1);
}
public void run() {
for(int i = 0; i < n; i++)
print(fib(i) + " ");
println();
}
}
class Ex2FibonacciC implements Runnable {
private int n = 0;
public Ex2FibonacciC(int n) {
this.n = n;
}
private int fib(int x) {
if(x < 2) return 1;
return fib(x - 2) + fib(x - 1);
}
public void run() {
for(int i = 0; i < n; i++)
print(fib(i) + " ");
println();
}
}
class Ex2FibonacciD implements Runnable {
private int n = 0;
public Ex2FibonacciD(int n) {
this.n = n;
}
private int fib(int x) {
if(x < 2) return 1;
return fib(x - 2) + fib(x - 1);
}
public void run() {
for(int i = 0; i < n; i++)
print(fib(i) + " ");
println();
}
}
public class Ex2 {
public static void main(String[] args) {
Thread f1 = new Thread(new Ex2FibonacciA(15));
Thread f2 = new Thread(new Ex2FibonacciB(15));
Thread f3 = new Thread(new Ex2FibonacciC(15));
Thread f4 = new Thread(new Ex2FibonacciD(15));
f1.start();
f2.start();
f3.start();
f4.start();
}
}
分享到:
相关推荐
Thinking in Java 4Edition 练习题答案
Thinking in Java 习题答案, 源代码
Thinking In Java 第四版 【练习题答案 完整版】+ 章节标签 pdf格式
Thinking In Java 练习题答案 (第四版) 配套答案,学习大师的编程思想
Thinking in java 第4版练习题答案
Thinking In Java 练习题答案 第四版.zip 配合我上传的Thinking In Java .chm
Annotated Solution Guide for TIJ4.pdf。Thinking in java 练习题答案。
Thinking in Java 2nd习题及答案
本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在Bruce Eckel...从Java的基础语法到最高级特性(深入的面向对象概念、多线程、自动项目构建、单元测试和调试等),本书都能逐步指导你轻松掌握。最新版本的哦
thinking in java 第四版习题答案
第四版-Thinking+In+Java-练习题答案
Thinking In Java 练习题答案 第四版 Thinking In Java 练习题答案 第四版 Thinking In Java 练习题答案 第四版
Thinking In Java 第四版 练习题答案
Thinking in Java 练习题答案 第四版Thinking in Java 练习题答案 第四版
pdf 很清晰,有练习题的答案,英文版的
Thinking in Java 4th Edition 英文文字版,带书签 Annotated Solution Guide 有代码
Thinking In Java 第四版 练习题答案
Java语言\Thinking in Java第三版+第四版\Thinking In Java 练习题答案 第四版\Control\Primes