Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lekcii_RSOI.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
400.38 Кб
Скачать
        1. Синхронизация

Критические секции. Право доступа к свойству (?) блокировки может быть приобретено и возвращено посредством методов и инструкций, помеченных как Synchtonized.

Плохой скан. Дальше, похоже, 2 примера.

  1. Synchronized для методов public synchronized void some method() { … }

  2. Synchronized для инструкций void some method() { Synchronized(values) { … } }

        1. Взаимодействие потоков

wait();

notifyAll();

notify();

synchronized void DoWhileCondition() {

обязательно [while !условие wait]

//выполнить что-либо

}

synchronized void ChangeCondition() {

//выполнить что-либо

notifyAll();

}

  1. class Cell { Cell next; Object Item; Cell(object item ) {this.item = item;} } class ? { private Cell head, tail; public synchronized void add(object o) { Cell p = new Cell(o); if (null==tail) head = p; else tail.next = p; p.next = null; tail = p; notifyAll(); } public synchronized object take() throws ?Exception { while (null ==head) wait(); Cell p = head; head = head.next; if (null = head) tail = null; return p.item; } }

1.4.I/O

-Символьные потоки данных

-Байтовые потоки данных

Симв. последовательность 16-битовых слов – Unicode.

I/O

  1. Текстовый – симв. потоки

  2. Бинарный – байт. потоки

Байтовые потоки называют потоками ввода и вывода.

Символьные потоки называют потоками записи и чтения.

  1. Типы общего назначения

  2. Классы, определяющие классы потоков (???? 1. Фильтровать ??? 2. Буферизовать)

  3. Специализированность – для простоых типов, строк.

  4. ?? Для обр. файловых данных ???

  5. Поддержка сериализации

Все байтовые потоки поддерживают механизмы открытие и закрытия.

Поток открывается при … ???

        1. InputStream

public abstract int read() throws IOException – читает 1 байт, возвращается в виде целого числа.

public abstract int read(byte[] buf, int offset, int count) throws IOException

class CountBytes{

public static void main(Strings args) throws Exception

{

..

}

}

        1. OutputStream

public abstract int write(int b) throws IOException – выводит 8 младших битов.

public abstract int write(byte[] buf, int offset, int count) throws IOException…

???

1.5.Библиотека Swing

AWT-Abstract Window Tolkit

Набор инструментальных средств для создания машинонезависмого(???) интерфейса.

1.5.1Frame

В библиотеке AWT-Frame

В библиотеке Swing – JFrame.

import javax.swing.*;

<пример из книжки Simple_Frame Frame/>

<куча заклинаний>

1.5.2Панели

.

Рис. .1.1

Служебные панели

  • Корневая панель

  • Слоеная панель

  • Прозрачная панель

Нужны для создания меню(?) и панели содержимого (?)ContentPanel.

1.5.3Обработка событий

Есть объекты событий – EventObject. Соответственно имеются типы событий: ActionEvent, WindowEvent и другие.

Чтобы подписаться на событие: ОбъектИсточника.addСобытиеListner(объект слушателя события).

  1. ActionListner listner = JButton button = new JButton(“Ok”); button.addActionListner(listner);

Слушатель – класс, реализующий специализированный интерфейс слушателя, например, ActionListner. У такого интерфейса есть метод actionPerformed(ОбъектСобытия).

Наша задача – реализовать интерфейс слушателя.

  1. class MyListner implements ActionListner { ⋮ public void actionPerformed(ActionEvent event) { // Реакция на событие } }

Источник события вызывает этот метод для генерации события(сообщает, что это событие наступило): listner.actionPerformed(event);

  1. JButton btnYellow = new JButton(“Yellow”); JButton btnBlue = new JButton(“Blue”); class ButtonPanel extends JPanel { public ButtonPanel(){ add(btnYellow); add(btnBlue); ⋮ class ColorAction implements ActionListner { private Color bkColor; public ColorAction(Color c) { bkColor = c; } public void actionPerformed(EventObject event) { // Отреагировать на событие } ⋮ ColorAction actYellow = new ColorAction(Color.yellow); ColorAction actBlue = new ColorAction(Color.blue);// регистрация ??? // Чтобы получить доступ, нужно сделать класс внутренним для класса Panel. class ButtonPanel extends JPanel { private class ColorAction implements ActionListner { public void actionPerformed(ActionListner { // … SetBackground(backgroundColor); repaint(); } private Color backgroundColor; }}

        1. Превращение компонентов в слушателей событий

class ButtonPanel extends JPanel implements ActionListner { … public ButtonPanel() { btnYellow.addActionListner(this); btnBlue.addActionListner(this); } public void actionPerformed(ActionEvent event){ // действие по событию }

Для распознавания источника события используется event.getSource.

        1. Классы – адаптеры

WindowAdapter class Terminators extends WinodwAdapter{ pubic void WindowClosing(WindowEvent e) { System.exit(0); } } WindowListner listner = new Terminator(); frame.addWindowListner(listner);

        1. Иерархия событий библиотеки awt

Иерархия событий библиотеки awt.

Рис. 1.2.

Пакет java.awt.event включает 14 интерфейсов слушателей, к которым есть соответствующие адаптеры.

2.Общие сведения о распределенных системах

2.1.Понятие распределенной системы

  1. РС содержит компоненты, которые распределены по разным компьютерам.,

  2. Определение 2.2 Хост – компьютер, на котором размещены компоненты вычислительной системы: аппаратура и сетевая ОС.

Взаимодействие компонентов РС.

Рис. 2.3.

А – головная боль для программистов.

РС содержит несколько хостов и более одного компонента. Компоненты должны взаимодействовать друг с другом.

  1. Взаимодействие компонентов:

  • доступ к своим службам

  • компонент может запрашивать обслуживание у других компонентов

  1. Для взаимодействия используется тот или иной вариант промежуточного уровня, который решает проблему неоднородности и распределения. Промежуточный слой располагается между компонентами и сетевой ОС

Промежуточный слой.

Рис. 2.4.

Определение 2.3 Хост – компьютер, на котором выполняются компоненты, составляющие часть распределенной системы.

Определение 2.4 Распределенная система – группа автономных хостов, соединенных при помощи компьютерных сетей. На каждом хосте:

  • выполняются компоненты

  • функционирует промежуточный слой. Компоненты, которые координируют свои действия, таким образом, что пользователь воспринимает систему как единое интегрированное вычислительное средство.

Лекция

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]