You are on page 1of 6

BÀI TẬP THỰC HÀNH SỐ 02

MÔN: HÊ ̣ ĐIỀU HÀNH NÂNG CAO

Bài tâ ̣p 1:

- Thiết kế mô ̣t đối tượng MessageQueue được implement interface Channel. Channel
này có thể chức mô ̣t loại đối tượng duy nhất được khai báo dạng Generic.
- Interface có 2 phương thức và được Implement bởi Class MessageQueue

public void send(T item) {};

public T receive() {};

Bài tâ ̣p 2: Thiết kế class OSProcess như hình vẽ sau dùng để khởi tạo tiến trình. Viết
class Test.
Bài tâ ̣p 3: Viết mô ̣t Thread, khởi chạy, ngừng và tạm nghĩ
Bài tâ ̣p 4: Viết class Consumer, nhiê ̣m vụ tiêu thụ các item bên trong Channel. Class
Consumer implements Interface Runnable và chạy như mô ̣t Thread với thời gian nghĩ
giữa mỗi lần chạy là 1000ms.

Bài tâ ̣p 5: Viết class Producer, nhiê ̣m vụ sản xuất ra các item đưa vào Channel. Class
Producer implements Interface Runnable và chạy như mô ̣t Thread với thời gian nghĩ giữa
mỗi lần chạy là 1000ms.

Bài tâ ̣p 6: Thử thay đổi thời gian nghĩ của 2 đối tượng Consumer và Producer đồng thời
kiểm tra số phần tử trong Channel để biết khi nào Channel đầy và khi nào Channel rỗng
item.

Bài tâ ̣p 7: Xây dựng class ThreadGroup để nhóm các Thread lại với nhau. Mỗi
ThreadGroup có thể bao gồm nhiều Consumer hoă ̣c nhiều Producer.
Bài tâ ̣p 8: Sử dụng ThreadPool như hình dưới

Bài tập 9: Viết một ứng dụng đồng hồ có có 2 nút Start, Stop. Sử dụng đối tượng
JComponent và JPanel như mô tả bên dưới
SecondCounterLockup.java
----------------------------------------------------------------------------
package counter;

import java.awt.*;
import javax.swing.*;

public class SecondCounterLockup extends JComponent {


private static final long serialVersionUID = 1L;

public SecondCounterLockup() {
}
public void runClock() {
}

public void stopClock() {


}

public void paint(Graphics g) {


}

-------------------------------------------------------------------------------------------

SecondCounterLockupMain.java
-------------------------------------------------------------------------------------------
package counter;

import javax.swing.JButton;
import javax.swing.JPanel;

public class SecondCounterLockupMain extends JPanel {


private static final long serialVersionUID = 1L;
private SecondCounterLockup sc;
private JButton startB;
private JButton stopB;

public SecondCounterLockupMain() {
}

public static void main(String[] args) {


}
}
--------------------------------------------------------------------------------------------

You might also like