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

📄 buffer.java

📁 《Java2程序设计实用教程(第2版)》课件
💻 JAVA
字号:
//【例7.6】  发送线程与接收线程。

public class Buffer                    //缓冲区
{
    private int value;                 //共享变量
    public void put(int i)
    {
       value = i;
    }
    public int get()
    {
       return value;
    }
}

class Sender extends Thread            //发送线程类
{
    private Buffer buffer;             //用于交换数据的共享变量
    
    public Sender(Buffer buffer)       //指定缓冲区
    {
        this.buffer = buffer;
    }
    
    public void run()
    {
        for (int i=1;i<6;i++)          //连续向缓冲区发送若干数据
        {
            buffer.put( i );
            System.out.println("Sender  put : " + i );

            try
            {
                 sleep(1);
            }
            catch(InterruptedException e) {}
        }
    }
}

class Receiver extends Thread          //接收线程类
{
    private Buffer buffer;
    
    public Receiver(Buffer buffer)     //指定缓冲区
    {
        this.buffer = buffer ;
    }
    
    public void run()        
    {
        for (int i=1; i<6;i++)         //连续从缓冲区接收若干数据
        {
            System.out.println("\t\t\tReceiver get : " + buffer.get()) ;
            
            try
            {
                 sleep(1);
            }
            catch(InterruptedException e) {}
        }
    }

    public static void main(String args[])
    {
        Buffer buffer = new Buffer();
        (new Sender(buffer)).start();
        (new Receiver(buffer)).start();
    }

}

/*
没有sleep(1)语句时,程序运行结果如下:
Sender  put : 1
Sender  put : 2
Sender  put : 3
Sender  put : 4
Sender  put : 5

    			Receiver get : 5
    			Receiver get : 5
    			Receiver get : 5
    			Receiver get : 5
    			Receiver get : 5


有sleep(1)方法时,每次运行结果不确定,交替执行,间隔输出,一种可能的运行结果如下:
Sender  put : 1
    			Receiver get : 1
Sender  put : 2
    			Receiver get : 2
Sender  put : 3
Sender  put : 4
    			Receiver get : 4
Sender  put : 5
    			Receiver get : 5
    			Receiver get : 5
*/

⌨️ 快捷键说明

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