Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ejercicios;
- import static es.urjc.etsii.code.concurrency.SimpleConcurrent.*;
- public class Ejercicio09 {
- private static final int N_FRAGMENTOS = 10;
- private static final int N_HILOS = 3;
- private static volatile int[] fichero = new int[N_FRAGMENTOS];
- // Add the attributes you need
- private static volatile int siguienteFragmento = 0;
- private static int descargaDatos(int numFragmento) {
- sleepRandom(1000);
- return numFragmento * 2;
- }
- private static void mostrarFichero() {
- println("--------------------------------------------------");
- print("File = [");
- for (int i = 0; i < N_FRAGMENTOS; i++) {
- print(fichero[i] + ",");
- }
- println("]");
- }
- public static void downloader() {
- while (true) {
- enterMutex();
- if (siguienteFragmento == N_FRAGMENTOS) {
- exitMutex();
- break;
- }
- int frag = siguienteFragmento;
- siguienteFragmento++;
- exitMutex();
- fichero[frag] = descargaDatos(frag);
- }
- }
- public static void main(String[] args) {
- createThreads(N_HILOS, "downloader");
- startThreadsAndWait();
- mostrarFichero();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement