4 / 4 / 1
Регистрация: 06.03.2014
Сообщений: 85
1

Очередь процессов

13.12.2014, 14:28. Показов 722. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет! Вообщем в java я новичок(совсем). Решил вот написать программку: Есть один поток процессов, который обслуживается одним процессором с одной очередью. Хочу сделать так, чтобы программа пихала процесс в очередь, а процессор брал и выполнял процессы из очереди. Вроде бы простая задачка, НО мне совсем не даётся. Прошу поделиться кодом, ссылками, чем угодно, что помогло бы решить задачу.

Собственно проблема именно с реализацией очереди( наверное )
Вот что у меня есть:
Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
public interface ISemaphore {
    public void release();
}
//processor
public class CPU implements ISemaphore {
    private int processorsCount=1;
    private int allProcessCount=0,destroyedProcessCount=0;
    private final Semaphore semaphore;
    
    public int getAllProcessCount() {
        return allProcessCount;
    }
    
    public int getDestroyedProcessCount() {
        return destroyedProcessCount;
    }
    
    public CPU() { 
        this.semaphore=new Semaphore(this.processorsCount);
    }
    
    public CPU(int processorsCount) {
        this.processorsCount=processorsCount;
        this.semaphore=new Semaphore(this.processorsCount);
    }
    
    public void runProcess(CPUProcess process) {
        allProcessCount++;
        if (semaphore.tryAcquire()) {
            process.start();
        }
        else {
            destroyedProcessCount++;
            process=null;
        }
    }
    
    public void release() {
        semaphore.release();
    }
    
}
//process
public class CPUProcess extends Thread{
    private ISemaphore semaphore;
    private int runTime;
    
    public CPUProcess(ISemaphore semaphore, int runTime) {
        this.runTime=runTime;
        this.semaphore=semaphore;
    }
     
    public void run() {
        try {
            Thread.sleep(runTime);
        }
        catch (InterruptedException e) {
            System.err.println(e);
        }
        semaphore.release();
    }
}
 
public class Main1 {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        CPU processors=new CPU();
        try {
            CPUProcess proc;
            proc=new CPUProcess(processors,10);
            processors.runProcess(proc);
            Thread.sleep(100);
            proc=new CPUProcess(processors,10);
            processors.runProcess(proc);
            proc=new CPUProcess(processors,10);
            processors.runProcess(proc);
            proc.join();
        }
        catch (InterruptedException e) {
            System.err.println(e);
        }
        
        System.out.println("count: "+processors.getAllProcessCount());
        System.out.println("kill: "+processors.getDestroyedProcessCount());
    }
    
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.12.2014, 14:28
Ответы с готовыми решениями:

Разработка модели обследования запросов (процессов) с использованием дисциплины, типа Очередь
Разработка модели обследования запросов (процессов) с помощью дисциплины, типа Очередь

Найти среди выполняющихся процессов имена процессов, имеющих одинаковые ProductVersion
нахождения среди выполняющихся процессов имен процессов, имеющих одинаковые ProductVersion. ...

Нахождение среди выполняющихся процессов имён процессов с наименьшим значением BasePriority
Разработать командлет для нахождения среди выполняющихся процессов имен процессов с наименьшим...

Завершение всех запущенных процессов из находящегося в текстовом файле списка запрещенных к запуску процессов
пожалуйста помогите написать батник. Задать в текстовом файле список процессов, запрещенных к...

0
13.12.2014, 14:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.12.2014, 14:28
Помогаю со студенческими работами здесь

Нахождение среди выполняющихся процессов имён 3-х процессов, использовавших более всего процессорного времени
Помогите выполнить задание! Нахождения среди выполняющихся процессов имен трех процессов,...

Нахождение среди выполняющихся процессов имён процессов, у которых значения параметра WorkingSet одинаковы
Необходимо создать командлет, который находит среди выполняющихся процессов имена процессов, у...

Несколько процессов explorer.exe в списке процессов
С некоторого времени обнаружил несколько процесов explorer.exe, два, три, когда как. Каспер молчит....

Создание задания, добавление процессов, удаление процессов
Здравствуйте. Уже который день бьюсь со своей лабораторной работой - не получается, и все. Идея...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru