《Java多线程应用》是一本深入讲解Java语言中多线程编程技术的专业书籍,涵盖线程基础、同步机制及高级并发API等内容,适合希望提升Java并发程序设计能力的技术人员阅读。
1. 创建三个线程,并同时运行它们,在运行过程中输出每个线程的名称。
实验步骤:
- (1)、创建类sy6_1;
- (2)、在该类中创建并启动这三个线程,通过调用start()方法实现;
- (3)、保存文件后进行调试和编译运行程序。
参考输出效果:
2. 实现三个类:Storage、Counter 和 Printer。
Storage 类用于存储整数。
Counter 类应生成一个从0开始计数的线程(即 0,1,2,3...),并将每个值存入到 Storage 类中;
Printer 类应该创建一个读取并打印出由 Storage 存储类中的数值的线程。
实验步骤:
- (1)、定义 Counter,Printer 和 Storage 这三个类;
- (2)、创建 TestCounter 类,并在其中定义 main 函数,在主函数中实例化Storage对象,以及分别创建一个 Counter 对象和 Printer 对象操作此存储实例;
- (3)、启动 Counter 线程与 Printer 线程后保存文件并进行调试及编译运行程序。
参考输出效果:
3. 修改实验1中的第二个问题的代码,在 Storage 类中添加同步机制,确保每个数字只被打印一次。
实验步骤:
- (1)、定义 Counter 和 Printer 以及 Storage 这三个类;
- (2)、创建 TestCounter 类,并在其中定义 main 函数,在主函数中实例化Storage对象和一个 Counter 对象及Printer对象,然后启动这两个线程;
- (3)、将存储类中的 setValue(int i) 和 getValue() 方法用 synchronized 关键字进行同步处理。
- (4)、保存文件后调试并编译运行程序。
参考输出效果: