// 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 练习题答案"的一些关键知识点的详细解释: 1. **基础语法**:在书中,读者会遇到关于类、对象、封装、继承、多态等基础知识的练习题。解答这部分问题时,你需要理解Java如何...
"Thinking in Java 习题答案"是配套的解答集,为读者提供了书中习题的解决方案,帮助读者更好地理解和应用所学知识。 习题答案通常涵盖以下几个关键知识点: 1. **基础语法**:包括变量声明、数据类型、运算符、...
这份"Thinking In Java 第四版 【练习题答案 完整版】"包含了书中的所有练习题及其解答,对于正在学习或已经学习过这本书的读者来说,是一份非常宝贵的参考资料。 1. **基础概念**:Java的基础概念包括变量、数据...
总之,《Thinking in Java 4 英文版+练习题答案》是一套完整的Java学习资源,通过它,你可以全面了解并掌握Java编程语言,从基础到进阶,从理论到实践,都能得到充分的训练。无论是为了个人兴趣,还是职业发展,投入...
其次,"Thinking in Java 3th Edition习题及答案.chm"则是本书的配套习题解答。这个CHM文件提供了书中所有练习题的解答,这对于学习者来说是一份宝贵的资源。通过解答习题,读者可以检验自己的理解程度,找出学习中...
- **标题:** Thinking in java 练习题答案 - **知识点:** 1. **Thinking in Java(TIJ):** 是由Bruce Eckel所著的一本介绍Java编程语言的书籍。它被广泛认为是学习Java的权威指南之一,尤其适合初学者和中级...
这个压缩包中的"Thinking In Java 练习题答案 第四版"文件,包含了上述所有主题的练习题解答,通过对照解答,读者可以检查自己的理解是否准确,对不理解的部分进行深入研究,从而巩固和深化Java编程技能。...
从读者的反馈来看,《Thinking in Java》不仅覆盖了Java的核心概念和技术,还通过一系列富有挑战性的练习帮助读者深入理解和掌握这些知识。下面我们将根据提供的文件信息来详细阐述该书中的关键知识点。 ### 一、...
这表明指南的目标是为那些希望深入理解《Thinking in Java》第四版内容的读者提供辅助材料,帮助他们更好地掌握书籍中的概念、练习和习题的解答。 综上所述,这份文件涉及了版权和知识产权的重要性、编程书籍对于...
在解压缩后的文件"Thinking In Java 练习题答案 第四版"中,你可以找到对书中各个章节练习题的详尽解答。这些答案将帮助你在实践中巩固理论知识,提高编程技能。以下是该资源涵盖的一些关键知识点: 1. **基础语法*...
第10章 Java IO系统 10.1 输入和输出 10.1.1 InputStream的类型 10.1.2 OutputStream的类型 10.2 增添属性和有用的接口 10.2.1 通过FilterInputStream从InputStream里读入数据 10.2.2 通过FilterOutputStream向...
- **Thinking In Java 4th Edition.pdf**:这是整个《Thinking in Java》第四版的PDF文件,包含所有章节。 - **Object**:可能是一个关于对象和类的章节,涵盖Java中的基本面向对象概念。 - **Operators**:这...
通过解答《Thinking in Java》第四版的练习题,读者不仅可以巩固对Java语法的理解,还能提升解决实际问题的能力,从而成为一名熟练的Java开发者。这些知识点是Java程序员职业生涯中不可或缺的基础,也是进阶学习其他...
本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在Bruce Eckel...从Java的基础语法到最高级特性(深入的面向对象概念、多线程、自动项目构建、单元测试和调试等),本书都能逐步指导你轻松掌握。最新版本的哦
《Thinking in Java 2nd习题及答案》是学习Java编程的重要参考资料,它基于Bruce Eckel的《Thinking in Java》第二版,提供了书中的习题解答,帮助读者深入理解和掌握Java语言的核心概念与技术。这本书涵盖了Java...
通过解答《Thinking in Java》第四版的练习题,我们可以系统地巩固和提高Java编程技能,为成为一名出色的Java开发者打下坚实基础。这本书的习题涵盖了从基础到高级的各个方面,是每个Java学习者不可多得的实践资源。
《Thinking in Java 4th ...通过《Thinking in Java 4th Edition》的习题答案,读者可以逐步掌握Java的精髓,提高编程技能,并为解决实际问题打下坚实基础。在实践中不断练习和反思,是成为优秀Java开发者的关键步骤。