JAVA CORE - Trang 168

www.updatesofts.com

!

"

+

&

8.7

Luồng hiểm

Một chương trình Java bị ngắt chỉ sau khi tất cả các luồng bị chết. Có hai kiểu luồng

trong một chương trình Java:

Các luồng người sử dụng
Luồng hiểm

Người sử dụng tạo ra các luồng người sử dụng, trong khi các luồng được chỉ định

như là luồng “background” (nền). Luồng hiểm cung cấp các dịch vụ cho các luồng khác.
Máy ảo Java thực hiện tiến trình thoát, khi và chỉ khi luồng hiểm vẫn còn sống. Máy ảo
Java có ít nhất một luồng hiểm được biết đến như là luồng “garbage collection” (thu lượm
những dữ liệu vô nghĩa - dọn rác). Luồng dọn rác thực thi chỉ khi hệ thồng không có tác
vụ nào. Nó là một luồng có quyền ưu tiên thấp. Lớp luồng có hai phương thức để thỏa
thuận với các luồng hiểm:

public void setDaemon(boolean on)
public boolean isDaemon()

8.8

Đa luồng với Applets

Trong khi đa luồng là rất hữu dụng trong các chương trình ứng dụng độc lập, nó

cũng đáng được quan tâm với các ứng dụng trên Web. Đa luồng được sử dụng trên web,
cho ví dụ, trong các trò chơi đa phương tiện, các bức ảnh đầy sinh khí, hiển thị các dòng
chữ chạy qua lại trên biểu ngữ, hiển thị đồng hồ thời gian như là một phần của trang Web
v.vv… Các chức năng này cầu thành các trang web làm quyến rũ và bắt mắt.

Chương trình Java dựa trên Applet thường sử dụng nhiều hơn một luồng. Trong đa

luồng với Applet, lớp java.applet.Applet là lớp con được tạo ra bởi người sử dụng định
nghĩa applet. Từ đó, Java không hổ trợ nhiều kế thừa với các lớp, nó không thể thực hiện
được trực tiếp lớp con của lớp luồng trong các applet. Tuy nhiên, chúng ta

sử dụng một

đối tượng của luồng người sử dụng đã định nghĩa, mà các luồng này, lần lượt, dẫn xuất từ
lớp luồng. Một luồng đơn giản xuất hiện sẽ được thực thi tại giao diện (Interface)
Runnable

Chương trình 8.3 chỉ ra điều này thực thi như thế nào:

Chương trình 8.3

import java.awt.*;
import java.applet.*;
public class Myapplet extends Applet implements Runnable {

int i;

Thread t;

/**
* Myapplet constructor comment.
*/

public void init(){

t = new Thread(this);

t.start();

}

public void paint(Graphics g){

g.drawString(" i = "+i,30,30);

}

public void run(){

for(i = 1;i<=20;i++){

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.