Red de conocimiento informático - Consumibles informáticos - Esperando en línea en cualquier momento, programación Java multiproceso, ¡se debe adoptar una operación exitosa!

Esperando en línea en cualquier momento, programación Java multiproceso, ¡se debe adoptar una operación exitosa!

//Clase de pila

paquete know1;

importar java.util.LinkedList;

pila de clase pública

{

LinkedListlt; s=new LinkedListlt;

public void push(Objeto o)

{

sincronizado(s){

s.push(o);

}

}

objeto público pop()

{

if(!s.isEmpty())

sincronizado(s){

return s.pop();

}

else

return null

}

public boolean isEmpty()

{

return s.isEmpty();

}

}

//Clase de producción

Producter de clase pública implementa Runnable

{

Stack s;

Producter público (Stack s)

{

this.s=s;

}

public void run()

{

for(int i=0 ;ilt;200;i )

{

int tem=(int)(Math.random()*1000);

s.push(tem );

System.out.println(Thread.currentThread().getName() "Los datos insertados en la pila son: "

try

<); p> {

Thread.sleep(600);

} catch (InterruptedException e)

{

// TODO Auto- bloque de captura generado

e.printStackTrace();

}

}

}

}

//

Clase de consumidor

clase pública Consume implementa Runnable

{

Stack s;

public Consume(Stack s)

{

super();

this.s = s;

}

ejecución nula pública()

{

for(int i=0; ilt; 200; i )

{

if(!s.isEmpty())

System.out.println(Thread.currentThread().getName() "Los datos extraídos son: " s.pop()

intentar

{

Thread.sleep(500);

} catch (InterruptedException e)

{

// TODO generado automáticamente bloque de captura

e.printStackTrace();

}

}

}

}

//Clase de prueba

clase pública TestProCon

{

public static void main(String[] args)

{

Pila s =nueva Pila();

Hilo producter1=nuevo Hilo(nuevo(s) Productor(es));

Hilo producter2=nuevo Hilo(nuevo Productor(es));

producter1.setName("producter1");

producter2.setName("producter2");

Hilo consumir1=nuevo hilo (nuevos consumos);

Hilo consumir2=nuevo hilo(nuevos consumos);

Hilo consumir3=nuevo hilo(nuevos consumos);

Hilo consumir3=nuevo hilo(nuevos consumos); p>

consumir1.setName("consumir1");

consumir2.setName("consumir2");

consumir3.setName("consumir3"); p>

productor1.start();

productor2.start();

consumir1.start();

consumir2.start(); p> consumir3.start();

}

}