Java多线程和输入输出流

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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();

相关文档
最新文档