Red de conocimiento informático - Material del sitio web - Temas de programación multiproceso

Temas de programación multiproceso

// Clase de pila

El paquete conoce 1;

Importar lista enlazada de Java .util;

Pila de clases públicas

{

ListaEnlazada & ltObject & gts=nueva ListaEnlazada<. Objeto & gt();

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

{

Push sincronizado{

s. ;

}

}

Objeto público pop()

{

Si (!s. está vacío ())

Sincronizado {

Retorno s. pop();

}

Otros

Retorno null

}

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<200;i++)

{

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

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

Probar

{

thread . sleep(600);

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

{

// TODO bloque de captura generado automáticamente

e.printstacktrace();

}

}

}

}

//Categoría de consumidor

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<200;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. p>

}

}

}

}

//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. setname ("productor 1); ");

productor 2. setname("productor 2 ");

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

Consumo de hilo 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 ();

}

}