题目内容

下面的代码是模拟生产者——消费者问题中的共享对象对应的类Share的代码。当生产者线程把一个数据放入Share对象的contents中后,将available赋值为true,表示生产者生产好了产品,通知消费者线程可以取走,如果消费者还没有取走产品,则生产者线程必须等待:如果消费者线程可以取走了产品,则将available赋值为false,然后通知生产者继续生产,否则消费者线程必须等待。请补充完成划线(1)~(5)部分的代码,编号相同的空代码是一样的。public class Share {private int contents;private boolean available=false;public(1)int get() {//同步get方法while((2)){//没有可提供的数据try {(3);//线程等待}catch(InterruptedException e) {e.printStackTrace();}}available=false;(4);//唤醒所有的线程return contents;}public (1) int put(int value) {//同步put方法while((5)){//有可提供的数据try {(3);//线程等待}catch(InterruptedException e) {e.printStackTrace();}}contents=value;available=true;(4);//唤醒所有的线程return contents;}}

查看答案
更多问题

return语句的作用是使程序流程从( )返回到( )的调用处。

以下程序输出的结果是( )。#include "stdio.h"int r(int a[]){int i,m=a[0];for(i=1;i<10;i++)if(a[i]>m)m=a[i];return m;}int main(){int a[10]={1,6,9,5,6,3,88,0,5,56};printf("%d\n",r(a));return 0;}

以下程序运行时输出( )int f(int x,int y){return x/y+x%y;}int main(){float a=1.5,b=2.5;float c=f(a,b);printf(“%.2f”,c);return 0;}

下列程序段运行结果是( )。int main(){int a=10,b;b=a+1;printf("%d,",b);fun(b);return 0;}void fun(int x){int b=0;b=b+1;printf("%d\n",b);}

答案查题题库