谁能帮我解析下这一小段java程序的意思啊

Producer(Qq){this.q=q;newThread(this,"Producer").start();}publicvoidrun(){inti=0;whil... Producer(Q q)
{
this.q = q;
new Thread(this, "Producer").start();
}
public void run()
{
int i = 0;
while(true)
{
q.put(i++);
}
}

上面的(Q q)
this q=q;
(this,"Producer")
q.put(i++);
是什么意思啊?求详细点
字数超了 只好截图 原谅
展开
 我来答
miniappsm9nDWitFR30O
2013-07-09 · 贡献了超过109个回答
知道答主
回答量:109
采纳率:0%
帮助的人:52.8万
展开全部
代码不全,你能给整个类的代码都弄出来吗?
我给你每一行解释!
追问
哦   好的    谢谢啦
追答
class Consumer implements Runnable { //声明一个类并且实现Runnable接口
Q q;//定义一个变量
Consumer(Q q) { //构造方法
this.q = q; //每次构造就给变量q赋值
new Thread(this, "Consumer").start(); //启动线程, (this,"Producer")这是Thread的一个构造方法里面的两个参数。
}
public void run() { //run()是重新Runnable 里面的run()
while(true) {
q.get();
}
}
}

class PC {
public static void main(String args[]) {
Q q = new Q(); //new 一个Q类的实例,调用默认的构造方法
new Producer(q); //new Producer类的实例,调用Producer(Q q)这个

构造方法。
new Consumer(q); //new Consumer类的实例,调用Consumer(Q q)这个构

造方法。
System.out.println("Press Control-C to stop."); //打印输出。
}
}

至于q.put(i++);因为我没看见你put()方法,所以不好解答。
zhaodong4625
2013-07-09
知道答主
回答量:78
采纳率:0%
帮助的人:19.2万
展开全部

1.(Q q)
           this.q=q;

你肯定有个类叫Q。当前类中有个变量类型为Q,名称为q。给当前类的变量q赋值。

2.new Thread(this, "Producer")分配新的 Thread 对象,名称为Producer。这个可以参考java api

另外你的这个java代码不全啊,把整个代码都贴出来,包括Q这个类的。

追问
哦   好的    谢谢啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pangzhiming
2013-07-09 · TA获得超过374个赞
知道小有建树答主
回答量:787
采纳率:100%
帮助的人:346万
展开全部
Producer(Q q)//Q是其他程序上定义的。未知。


   this.q = q; //把(Q q) 赋值给q 
 new Thread(this, "Producer").start();//声明线程并且开始线程
}

public void run()



   int i = 0; 

   while(true)



     q.put(i++); //这是线程要执行的内容了
   } 

 }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
865517964
2013-07-09
知道答主
回答量:79
采纳率:0%
帮助的人:22.6万
展开全部
(Q q) q为Q的一个对象
this q=q将此类的中的q地址指向q,通白说就是:将传入的q赋给此类总的q
(this,"Producer") 线程Thread的构造方法
q.put(i++); 调用q中的put方法,i++ i自增1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-09
展开全部
应该是演示 生产者 消费者 信号量的代码片段吧。
每当来一个Q q(应该是个队列或者管道之类的)时,生产者负责上产一个线程new Thread(this, "Producer").start();
线程就是本身这个类new了自己的一个对象,(this,"Producer")是构造方法,说明线程有本身这个类构建,名字叫“Producer”(生产者);
这个线程就负责q.put(i++);往队列中生产产品i,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式