Java多线程和输入输出流
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
班级:13科技2班学号:201324131225 姓名:许耿宁
Java多线程和输入输出流
一、实验目的:
1.熟悉利用Thread类建立多线程方法。
2.熟悉利用Thread接口建立多线程方法。
3.熟悉Java的文件读写机制,练习输入输出流的使用。
二、实验内容:
1.阅读下列程序,分析并上机检验其功能。
public class DelayRunnable implements Runnable{
private static int count=0;
private int no;
private int delay;
public DelayRunnable(){
count++;
no=count;
}
public void run(){
try{
for (int i=0;i<10;i++){
delay=(int)(Math.random()*5000);
Thread.sleep(delay);
System.out.println("Thread "+no+" with a delay "+delay);
}
}catch(InterruptedException e){}
}
}
class MyRunnable{
public static void main(String args[]){
DelayRunnable r1 = new DelayRunnable();
DelayRunnable r2 = new DelayRunnable();
Thread thread1=new Thread(r1);
Thread thread2=new Thread(r2);
thread1.start();
thread2.start();
try{
Thread.sleep(1000);
}catch(InterruptedException e){
System.out.println("Thread wrong");
}
}
}
2.将上列程序利用Runnable接口改写,并上机检验。
3.创建简单的程序ThreeThread.java,该程序将创建三个线程,每个线程应当显示它所运行的时间(可以考虑使用Date类或Calendar类)。
4.键盘输入10个整数,从小到大进行排序。
5.接收键盘输入的字符串,用FileInputStream类将字符串写入文件,用
FileOutputStream类读出文件内容显示在屏幕上。
6.将一个文本文件的内容按行读出,每读出一行就顺序加上行号,并写入到另一个文件中。
三、实验要求:
1.通过实验掌握Thread 、Runnable使用方法;
2.程序必须能够实现多线程;
3.程序必须能够完成题目要求;
4.通过实验掌握文件输入输出流的使用方法;
5.程序必须能够从键盘接收字符串并保存在文件中;
6.程序必须能够读出文件内容显示在屏幕上;
7.写出实验报告。
四、实验代码及截图:
第一题:
在编译器上运行程序得到截图所示结果:
第二题:
①实验代码
public class DelayThread extends Thread{
private static int count=0;
private int no;
private int delay;
public DelayThread(){
count++;
no=count;
}
public void run(){
try{
for (int i=0;i<10;i++){
delay=(int)(Math.random()*5000);
sleep(delay);
System.out.println("Thread "+no+" with a delay "+delay);
}
}catch(InterruptedException e){}
}
}
class MyThread{
public static void main(String args[]){
DelayThread thread1=new DelayThread();
DelayThread thread2=new DelayThread();
thread1.start();
thread2.start();
try{
Thread.sleep(1000);
}catch(InterruptedException e){
System.out.println("Thread wrong");
}
}
}
②实验结果截图:
第三题:
①实验代码:
public class MultiThread {
static Lock mylock;
public static void main(String[] args) {
RunningObject1 r1 = new RunningObject1();