Sunteți pe pagina 1din 6

Ministerul Educaţiei al Republicii Moldova

Universitatea Tehnică a Moldovei


Facultatea Calculatoare,informatică și microelectronică
Catedra Calculatoare, specialitatea: Calculatoare

RAPORT
La ASO
Lucrarea de laborator nr.1

A efectuat: Cațer Cătălin, Corpacean Mihail

A verificat: Rotaru Lilia

Chişinău – 2023
Tema: Elaborarea unui mecanizm de planificare a activităţii proceselor

Scopul lucrării:

 Însuşirea modalităţilor de creare a mecanizmelor de planificare;


 Însuşirea modalităţilor de prelucrare a mecanizmului de planificare;

Sarcina:
Creaţi o aplicaţie cu unu sau mai multe taimere utilizînd clasele Timer și TimerTask în diferite
moduri:
Să reacționeze la un anumit interval de timp.
1) Să reacționeze la un anumit interval de timp.
2) Să reacționeze la un anumit timp.
3) Să reacționeze cu o perioadă indicată.

Codul:
Lab1_a (Mihail Corpacean)

import java.util.Timer;
import java.util.TimerTask;

//Să reacționeze la un anumit interval de timp.


class TimerApp {

    public static void main(String[] args) {


        // Cream un obiect Timer care ne va ajuta sa programam TimerTask-ul.
        Timer timer = new Timer();

        // Cream un obiect TimerTask prin intermediul unei clase anonime, care va avea o
variabilă "count"
        // și o metodă "run" care se va rula la fiecare apel al programării TimerTask-
ului.
        TimerTask task = new TimerTask() {
            int count = 0;
            public void run() {
                // Incrementăm variabila "count" la fiecare apel al metodei run.
                count++;
                // Afisăm numărul curent al contorului în consolă.
                System.out.println("Count: " + count);
            }
        };

        // Programăm executarea TimerTask-ului la fiecare 1000 de milisecunde (adică 1


secundă),
        // cu o întârziere inițială de 0 milisecunde.
        timer.schedule(task, 0, 1000);
    }
}

Lab1_b ( Cațer Cătălin)


import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

public class lab1_b {

    public static void main(String[] args) {


        Timer timer = new Timer();
        TimerTask task = new TimerTask() {
            public void run() {
                System.out.println("Task completed at: " + new Date());
            }
        };
        Date date = new Date(System.currentTimeMillis() + 5000); // task-ul va fi
executat în 5 secunde
        timer.schedule(task, date);
    }
}

Lab1_c (Cațer Cătălin)


import java.util.Timer;
import java.util.TimerTask;

public class lab1_c {

    public static void main(String[] args) {


        Timer timer = new Timer();
        TimerTask task = new TimerTask() {
            public void run() {
                System.out.println("Task executed every 2 seconds");
            }
        };
        timer.schedule(task, 0, 2000); // se rulează task-ul la fiecare 2 secunde
    }
}

Lab1final (Corpacean Mihail)


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import java.util.Scanner;
public class Lab1final extends JFrame {
    private Timer timer;
    private int option;
    private JLabel resultLabel;

    public Lab1final() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(500, 450);
        setTitle("Timer Program");

        // crearea componentelor GUI


        JLabel label = new JLabel("Selectează exemplul:");
        JButton button1 = new JButton("Interval de timp");
        JButton button2 = new JButton("Timp specific");
        JButton button3 = new JButton("Perioadă indicată");
        JButton button4 = new JButton("Ieși din program");

        resultLabel = new JLabel(""); // initial, nu avem niciun rezultat

        // adăugarea componentelor la fereastră


        setLayout(new GridLayout(6, 1));
        add(label);
        add(button1);
        add(button2);
        add(button3);
        add(button4);
        add(resultLabel); // adaugam labelul pentru afisarea rezultatului

        // adăugarea listener-ilor pentru butoane


        button1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                option = 1;
                startTimer();
            }
        });

        button2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                option = 2;
                startTimer();
            }
        });

        button3.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                option = 3;
                startTimer();
            }
        });
        button4.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                System.exit(0);
            }
        });
    }

    private void startTimer() {


        // crearea unui nou timer
        timer = new Timer();
        switch (option) {
            case 1:
                TimerTask task1 = new TimerTask() {
                    int count = 0;

                    public void run() {


                        count++;
                        resultLabel.setText("Count: " + count); // setam textul pentru
afisarea rezultatului
                        if (count == 5) {
                            System.out.println("Done 1");
                            timer.cancel(); // oprim timer-ul dupa 5 secunde

                        }
                    }
                };
                timer.schedule(task1, 0, 1000);
                break;
            case 2:
                TimerTask task2 = new TimerTask() {
                    public void run() {
                        resultLabel.setText("Timerul este finisat la: " + new Date());
                        System.out.println("Done 2");
                        timer.cancel();
                    }
                };
                timer.schedule(task2, 6000);
                break;
            case 3:
                TimerTask task3 = new TimerTask() {
                    int count = 0;

                    public void run() {


                        count++;
                        resultLabel.setText("Count: " + count+" "+"Se executa la ficare
2sec");
                        if (count == 10) {
                            System.out.println("Done 3");
                            timer.cancel();
                        }
                    }
                };
                timer.scheduleAtFixedRate(task3, 0, 2000);
                break;
            default:
                break;
        }
    }

    public static void main(String[] args) {


        Lab1final program = new Lab1final();
        program.setVisible(true);
    }
}

S-ar putea să vă placă și