| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1453 人关注过本帖
标题:none applicable
只看楼主 加入收藏
yqiong
Rank: 1
等 级:新手上路
帖 子:315
专家分:0
注 册:2007-7-4
结帖率:83.33%
收藏
 问题点数:0 回复次数:1 
none applicable
我先建了一个project,然后建了一个class,但是为什么运行时点击“run/run as”下边出现none applicable而不是java application?
程序没有问题的,是copy书上的代码!如下:
public class BufferLock                    //加互斥锁的缓冲区
{
    private int value;                     //共享变量
    private boolean isEmpty = true;        //value是否为空的信号量
   
    public synchronized void put(int i)    //同步方法
    {
        while (!isEmpty)                   //当value不空时,等待
        {
            try
            {
                 this.wait();              //使调用该方法的当前线程等待,即阻塞自己
            }
            catch(InterruptedException e) {}
        }
        
        value = i;                         //当value空时,value获得值
        isEmpty = false;                   //设置value为不空状态
        notify();                          //唤醒其他等待线程
    }
   
    public synchronized int get()          //同步方法
    {
        while (isEmpty)                    //当value空时,等待
        {
            try
            {
                 this.wait();
            }
            catch(InterruptedException e) {}
        }

        isEmpty = true;                    //设置value为空状态,并返回值
        notify();
        return value;                     
    }
}

class Sender extends Thread                //发送线程类
{
    private BufferLock buffer;
   
    public Sender(BufferLock buffer)
    {
        this.buffer = buffer;
    }
   
    public void run( )
    {
        for (int i=1;i<6;i++)
        {
            buffer.put( i );
            System.out.println("Sender  put : " + i );
        }
    }
}

class Receiver extends Thread             //接收线程类
{
    private BufferLock buffer;
   
    public Receiver(BufferLock buffer)
    {
        this.buffer = buffer ;
    }
   
    public void run()
    {
        for (int i=1; i<6;i++)
            System.out.println("\t\t\tReceiver get : " + buffer.get()) ;
    }

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

}
搜索更多相关主题的帖子: none applicable 
2008-12-04 11:49
yqiong
Rank: 1
等 级:新手上路
帖 子:315
专家分:0
注 册:2007-7-4
收藏
得分:0 
2008-12-06 09:58
快速回复:none applicable
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013836 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved