⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testsenderandreceiver.java

📁 多线程 课堂讲解代码 很经典的
💻 JAVA
字号:
public class TestSenderAndReceiver {  public static void main (String args[ ]) {    SharedBuffer buffer = new SharedBuffer () ;    Sender s1 = new Sender (buffer) ;    Receiver r2 = new Receiver (buffer) ;    s1.start () ;    r2.start () ;  } // main方法结束} // 类TestSenderAndReceiver结束//声明发送者类class Sender extends Thread {  SharedBuffer theBuffer ;  public Sender (SharedBuffer s) {    theBuffer = s ;  }  public void run () {    char c ;    for (int i = 0 ;i < 5 ;i++) {      c = (char) (Math. random()*31 +'A');      theBuffer.send(c) ;      System.out .println("Sender : "+ c) ;      try{        Thread.sleep( ( int ) ( Math.random() * 1000 ) );      }catch ( InterruptedException e ){        System.out.println("Exception:" + e.getMessage());      } // try/catch 块结束    } // for 结束  } // run()方法结束} // 类Sender结束// 声明接收者类class Receiver extends Thread {  SharedBuffer theBuffer ;  public Receiver (SharedBuffer s) {    theBuffer = s ;  }  public void run () {    char c ;    for (int i = 0 ;i < 5 ;i++) {      c = theBuffer.receive () ;      System.out.println("Receiver : "+ c) ;      try{        Thread.sleep( ( int ) ( Math.random() * 3000 ) );      }catch ( InterruptedException e ){        System.out.println("Exception:" + e.getMessage());      } // try/catch块结束    } // for结束  } // run()方法结束} // 类Receiver结束// 共享缓冲区类class SharedBuffer {  private static int BUFFERSIZE = 5;  private int index = 0 ;  private char buf [ ] = new char[ BUFFERSIZE ] ;  public synchronized void send (char c) {    while (index == buf.length) { // 如果缓冲区已满,则发送线程等待      try {        wait();      } catch( InterruptedException e) {}    } // while结束    notify();    buf[index] = c ;    index++;  } // send()方法结束 public synchronized char receive () {   while (index == 0) { // 如果缓冲区空,则接受线程等待     try {       wait () ;     } catch( InterruptedException e) {}   } // while结束   notify();  //接受线程接受后唤醒发送线程发送数据   index-- ;   return buf[index] ;  } // receive方法结束} // 类SharedBuffer结束

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -