JAVA实验三(南邮)

  1. 创建两个线程,第一个线程启动调用wait()方法进入阻塞状态,等待另一个线程来唤醒;第二个线程启动后睡眠一段时间,苏醒后调用notifyall()方法唤醒处于阻塞状态的另一个线程。
public class class5_30 {
    public static void main(String args[]){
        Object dummy=new Object();
        Thread t1=new Thread1(dummy);
        Thread t2=new Thread2(dummy);
        t1.start();
        t2.start();

    }
}
class Thread1 extends Thread {
    Object dummy;

    public Thread1(Object s){
        dummy = s;
        System.out.println("线程已构造");
    }

    public void run()

    {
        try {
            System.out.println("线程1开始");
            System.out.println("线程1等待唤醒");
            synchronized (dummy) {
                dummy.wait();
            }
            System.out.println("线程1已被唤醒");
        } catch (Exception e) {
        }
    }
}
class Thread2 extends Thread {
    Object dummy;

    public Thread2(Object s) {
        dummy = s;
        System.out.println("线程2已构造");
    }

    public void run() {
        try {
            System.out.println("线程2开始");
            sleep(50000);
            synchronized (dummy) {
                dummy.notifyAll();
            }
        } catch (Exception e) {}
    }
}

2. 编写一个有两个线程的程序,第一个线程用来计算2~100000之间的质数及个数,第二个线程用来计算100000~200000之间的质数及个数。

class class5_30_2 extends Thread{

    int i,j,x=0;
    class5_30_2(int m, int n){
        this.i = m;
        this.j = n;
    }

    public void run() {

        int p,q;
        p=0;q=0;

        for(int m=i;m<=j;m++) {
            for(int h=1;h<=m;h++) {
                q=m%h;
                if(q==0)p=p+1;
            }
            if(p==2) {
                x=x+1;
            }
            p=0;
        }

        System.out.println("输出"+i+"到"+j+"之间的质数个数:"+x);
    }

    public static void main(String[] args) {

        class5_30_2 thread1 =  new class5_30_2(2,100000);
        class5_30_2 thread2 =  new class5_30_2(100000,200000);

        thread1.start();
        thread2.start();

    }
}

3.编写一个应用程序,读取一个文本文件的内容。

import java.io.IOException;
import java.io.FileReader;
class Main {
    public static void main(String[] args) throws IOException {

        String fileName ="C:\\Microsoft\\TXT.txt";
        FileReader fileReader = new FileReader(fileName);

        char[] chars = new char[20];

        fileReader.read(chars,0,15);

        for(char ch:chars){
            System.out.print(ch);
        }
    }
}

4. 编写一个应用程序,将用户从键盘输入的10行文字存入文件。

import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class Test {
    private static final String LINE_SEPARATOR = System
            .getProperty("line.separator");//定义换行符常量

    public static void main(String[] args) throws IOException {
        int i = 0;
        Scanner sc = new Scanner(System.in);//键盘扫描对象
        FileWriter fw = new FileWriter("d:\\a.txt");//创建一个输出流
        while (i < 10) {
            String str = sc.nextLine();//读取键盘输入的一行
            fw.write(str + LINE_SEPARATOR);//将该行写到文件中
            i++;
        }
        fw.close();//关闭流
    }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值