Luồng trong java

Một phần của tài liệu Sơ lược về ngôn ngữ Java (Trang 31 - 34)

Trong Java, luồng là 1 đối tượng thuộc lớp java.lang.Thread. Một chương trình trong java có thể cài đặt luồng bằng cách tạo ra một lớp con của lớp java.lang.Thread.

Lớp này có 3 phương thức cơ bản để điều khiển luồng là: • public native synchronized void start()

• public void run() • public final void stop()

Phương thức start() Chuẩn bị mọi thứđể thực hiện luồng. Phương thức run() Thực hiện công việc thực sự của luồng, () sẽđược kích hoạt một cách tự động bởi phương thức start(). Phương thức stop() Kết thúc luồng.

Luồng sẽ "chết" khi tất cả các công việc trong phương thức run() được thực hiện hoặc khi phương thức stop() được kích hoạt.

Ví dụ

Ví dụ sau định nghĩa lớp MyThread là một Thread có: • Các thuộc tính

o name: tên của thread

o n: số lần thread xuất hiện ra màn hình • Các phương thức:

o MyThread(String name, int n):

Là phương thức khởi tạo, có nhiệm vụ gán giá trị cho 2 thuộc tính và gọi phương thức start() để cho thread hoạt động (start() tựđộng gọi run())

o run()

In n lần dòng thông báo ra màn hình rồi kết thúc thread.

o main()

Tạo ra 4 thread thuộc lớp MyThread lần lượt có tên là Thread0, Thread1, Thread2, Thread3. Mỗi thread có 1000 lần xuất hiện ra màn hình.

Lưu chương trình sau vào tập tin MyThread.java

public class MyThread extends Thread{ String name;

int n;

MyThread(String name, int n){ this.name = name;

this.n = n;

System.out.println("Thread "+name+" has been created ....!"); start();

}

public void run(){

for(int i=0; i< n; i++) {

System.out.println("Hello, I'm "+ name);

System.out.println(" I go to bed now, bye bye ... wow ... "); }

public static void main(String args[]){ int n = 1000;

int nt = 4 ;

for (int i=0; i< nt; i++){

MyThread t = new MyThread("Thread"+i,n); }

} }

Biên dịch và thực thi ta có kết quả sau:

Các Thread in ra màn hình theo thứ tự ta không thể xác định trước được vì chúng được t

ố DOS mà chương trình đang chạy. Sau đó ta nhấn phín Enter để chương trình tiếp tục.

Ngoài ra, lớp Thread còn có 1 số các phương thức khác : hực thi song song nhau.

Để dừng tạm thời màn hình kết quả khi chương trình đang thực thi, ta nhấp chuột vào cửa s

• public static void sleep(long milliseconds) throws InterruptedException: làm cho Thread bị nghẽn (Blocked) một khoảng thời gian mili giây xác định. • public final void suspend(): Chuyển Thread từ trạng thái sẳn sàng sang trạng

thái nghẽn.

• public final void resume(): Chuyển Thread từ trạng thái nghẽn sang trạng thái sẵn sàng.

• public final void yield() : Chuyển Thread từ trạng thái đang chạy sang trạng thái sẵn sàng.

Một phần của tài liệu Sơ lược về ngôn ngữ Java (Trang 31 - 34)

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

(37 trang)