Red de conocimiento informático - Material del sitio web - Guía de programación multiproceso pdf

Guía de programación multiproceso pdf

// Clase de pila

El paquete conoce 1;

Importar lista enlazada de Java .util;

Pila de clases públicas

{

LinkedList ltObject gts=nuevo LinkedListlt. Objeto gt();

Push de vacío público(objeto o)

{

Sincronizado{

s .

}

}

Objeto público pop()

{

Si (! s.isEmpty ( ))

Sincronizado {

Devuelve s. pop();

}

Otros

Devuelve nulo

}

público booleano isEmpty()

{

Devuelve s.

}

//Clase de producción

El generador de clases públicas implementa Runnable

{

Stack s;

Bienes públicos (pila)

{

this.s = s

}

Public void run( )

{

for(int I = 0; i lt200; i )

{

int tem =( int)( matemáticas .aleatorio()* 1000);

s . out.println(thread. currentthread(). getname () "Los datos en la pila son: " tem

Pruebe

{

thread . dormir (600);

} captura (excepción de interrupción e)

{

//TODO bloque de captura generado automáticamente

e. printstacktrace();

}

}

}

}

//Categoría de consumidor

p>

La clase pública Consume implementa Runnable

{

Pila s;

Consumidor público (pila)

{

super();

this.s = s

}

Ejecución de vacío público()

{

for(int I = 0; i lt200; i )

{

if (!s.isEmpty())

sistema. fuera. println(hilo. hilo actual().

getname () "Los datos extraídos son: " s . pop());

Pruebe

{

thread(500);

} catch (excepción de interrupción e)

{

//TODO bloque de captura generado automáticamente

e.

}

}

}

}

//Clase de prueba

Clase pública TestProCon

{

Public static void main(String[] args)

{

Pila s = new Stack();

p>

Productor de hilo 1 = nuevo hilo (nuevo producto);

Productor de hilo 2 = nuevo hilo (nuevo generador

productor 1 . " productor 1 ");

productor 2. setname(" productor 2 ");

Consumo de hilo 1 = nuevo hilo (nuevo consumo);

Hilo consumo 2 = nuevo hilo (nuevo consumo);

Consumo de hilo 3 = nuevo hilo (nuevo consumo

consumir 1. setname("consumir 1"

);

consumir 2 . setname(" consumir 2 ");

consumir 3 . setname(" consumir 3 ");

productor 1 .

productor 2. inicio();

consumir 1. inicio();

consumir 2. inicio();

consumir 3. inicio( ) ;

}

}