Lớp Thread

Một phần của tài liệu Bé gi¸o dôc vμ ®μo t¹o Trêng ®¹i häc s ph¹m kü thuËt hng yªn pot (Trang 151 - 155)

II. Lập trỡnh đa tuyến trong Java

1. Lớp Thread

Lớp Thread chứa phương thức tạo dựng Thread() cũng như nhiều phương thức hữu ớch cú chức năng chạy, khởi động, tạm ngừng, tiếp tục, giỏn đoạn và ngưng tuyến. Để tạo ra và chạy một tuyến ta cần làm 2 bước:

• Mở rộng lớp Thread và Ghi đố phương thức run()

• Gọi phương thức start() để bắt đầu thực thi tuyến

Lớp Thread khụng cú nhiều phương thức lắm, chỳng chỉ cú một vài phương thức hữu dụng được liệt kờ sau:

public void run()

được java gọi để thực thi tuyến thi hành, bạn phải ghi đố phương thức này để thực thi nhiệm vụ của tuyến, bởi vỡ phương thức run()của lớp Thread chỉ là phương thức rỗng

public void start()

khi ta tạo ra tuyến nú chưa thực sự chạy cho đến khi, phương thức start() được gọi, khi start() được gọi thỡ phương thức run() cũng được kớch hoạt

public void stop()

cú chức năng ngưng tuyến thi hành, phương thức này khụng an toàn, bạn nờn gỏn null vào biến Thread để để dừng tuyến, thay vỡ sử dụng phương thức stop()

public void suspend()

Cú chức năng tạm ngừng tuyến, trong java 2, phương thức này ớt được sử dụng, bởi vỡ phương thức này khụng nhả tài nguyờn mà nú lắm giữ, do vậy cú thể nguy cơ dẫn đến deadlock ( khoỏ chết ), bạn nờn dựng phương thức wait(), để tạm ngừng tuyến thay vỡ sử dụng phương thức suspend()

public void resume()

Tiếp tục vận hành tuyến nếu như nú đang bị ngưng, nếu tuyến đang thi hành thỡ phương thức này bị bỏ qua, thụng thường phương thức này được dựng kết hợp với phương thức suspend(), kể từ java 2 phương thức này cựn với phương thức suspend()bị từ chối, do vậy bạn nờn dựng phương thức notify () thay vỡ sử dụng phương thức resume()

public static void sleep( long millis) Threadows InterruptedException

đặt tuyến thi hành vào trạng thỏi ngủ, trong khoảng thời gian xỏc định bằng mili giõy. chỳ ý sleep() là phương thức tĩnh.

public void interrupt()

làm giỏn đoạn tuyến thi hành

public static boolean isInterrupt()

kiểm tra xem tuyến cú bị ngắt khụng

public void setpriority( int p)

ấn định độ ưu tiờn cho tuyến thi hành, độ ưu tiờn được xỏc định là một số

nguyờn thuộc đoạn [1,10]

public final void wait() throws InterruptException

đặt tuyến vào trạng thỏi chờ một tuyến khỏc, cho đến khi cú một tuyến khỏc thụng bỏo thỡ nú lại tiếp tục, đõy là phương thức của lớp cơ sở Object

public final void notify ()

đỏnh thức tuyến đang chờ, trờn đối tượng này

public final void notifyAll() đỏnh thức tất cả cỏc tuyến đang chờ trờn đối tượng

này

isAlive() Trả về True, nếu luồng là vẫn cũn tồn tại (sống)

getPriority() Trả về mức ưu tiờn của luồng

join() Đợi cho đến khi luồng kết thỳc

isDaemon() Kiểm tra nếu luồng là luồng một luồng chạy ngầm (deamon)

• setDeamon(boolean on) Đỏnh dấu luồng như là luồng chạy ngầm

vớ dụ: ta tạo ra 2 tuyến thi hành song song, một tuyến thực hiện việc in 200 dũng “Đại học sư phạm kỹ thuật Hưng Yờn”, trong khi tuyến này đang thực thi thỡ cú một tuyến khỏc vẫn tiếp tục in 200 dũng chữ “chào mừng bạn đến với java”

/**

* <p>Title: </p>

* <p>Description: Giao trinh ngon ngu lap trinh Java</p> * <p>Copyright: Copyright (c) 2004</p>

* <p>Company: DHSPKT HY</p> * @author Hoang Trong The

* @version 1.0 */

public class Hello{

public static void main ( String[] args ){ new ChaoDH ().start ();

new ChaoJV ().start (); }

}

class ChaoDH extends Thread{ public void run (){

for ( int i = 1; i <= 200; i++ )

System.out.println ( "Đại học sư phạm kỹ thuật Hưng Yờn" ); }

}

class ChaoJV extends Thread{ public void run (){

for ( int i = 1; i <= 200; i++ )

System.out.println ( "chào mừng bạn đến với java" ); }

}

khi ta chạy chương trỡnh thấy kết quả xen kẽ nhau như ………..

Đại học sư phạm kỹ thuật Hưng Yờn chào mừng bạn đến với java

Đại học sư phạm kỹ thuật Hưng Yờn chào mừng bạn đến với java

Đại học sư phạm kỹ thuật Hưng Yờn chào mừng bạn đến với java

chào mừng bạn đến với java …………...

Một phần của tài liệu Bé gi¸o dôc vμ ®μo t¹o Trêng ®¹i häc s ph¹m kü thuËt hng yªn pot (Trang 151 - 155)

Tải bản đầy đủ (PDF)

(193 trang)