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

📄 buffer.java

📁 solution to the simulation of the vasculating buffer
💻 JAVA
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package examen;import java.util.Random;/** * * @author ANGEL */public class buffer {    int tam;    cola obj[];    cola en_uso;    Random r;    buffer(int tam){        int i;        boolean valor;        this.tam = tam;        obj = new cola[tam];        r = new Random();        valor = r.nextBoolean();        for(i = 0;i<tam;i++){            obj[i] = new cola(valor,!valor,i);            valor = invertir_bool(valor);        }    }    synchronized void meter_buffer(String valor[],int tam,int id){        int i;        en_uso = buscar_escritor();        for(i=0;i<tam;i++){            if(en_uso != null){                en_uso.meter(valor[i]);            }        }        System.out.println("EL HILO "+id+" metio "+tam+" valores");        //recorrercolas();        valvula();    }    synchronized void sacar_buffer(int tam, int quien){        en_uso = buscar_lector();        String dato;        int i;        for(i=0;i<tam;i++){                if(en_uso.l.size() >0){                    dato = en_uso.sacar();                    System.out.println("EL HILO"+quien+"SACO EL DATO: <<"+dato+ ">> de la cola "+en_uso.id);                }else                    System.out.println("EL HILO "+quien+" INTENTO SACAR UN DATOS DE LA COLA "+en_uso.id+" PERO ESTA VACIA");        }    }    void valvula(){    //    System.out.println("Antes de valvular");   //     desplegar_funciones();        en_uso.invertir();        int i = 0;        if(hay_lector()==false ){            for(i=0;i<this.tam;i++){                if(en_uso != obj[i]){                    obj[i].invertir();                    break;                }            }        }else if(hay_escritor()==false){            for(i=0;i<this.tam;i++){                if(en_uso != obj[i]){                    obj[i].invertir();                    break;                }            }        }  //      System.out.println("despues de valvular");  //      this.desplegar_funciones();    }    cola buscar_escritor(){        int i,j;        cola regreso = null ;        for(i=0;i<tam;i++){            if(obj[i].escritura){                regreso =  obj[i];            }        }        return regreso;    }    cola buscar_lector(){        int i,j;        cola regreso = null ;        for(i=0;i<tam;i++){            if(obj[i].lectura){                regreso =  obj[i];            }        }        return regreso;    }    boolean hay_lector(){        cola valor;        valor = buscar_lector();        if(valor != null){            return true;        }else{            return false;        }    }    boolean hay_escritor(){        cola valor;        valor = buscar_escritor();        if(valor != null){            return true;        }else{            return false;        }    }    boolean invertir_bool(boolean valor){        return !valor;    }    void desplegar_funciones(){        int i;        for(i=0;i<this.tam;i++){            System.out.print(obj[i].tipo());           // obj[i].tipo();        }            System.out.println();    }    synchronized void recorrercolas(){        int i;        for(i=0;i<this.tam;i++){            this.obj[i].recorrer();        }    }}

⌨️ 快捷键说明

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