Tìm hiểu lập trình đa luồng trong lập trình java qua các ví dụ cho người mới học

Lập trình đa luồng được áp dụng nhiều trong lập trình nói chung cũng như trong java nói riêng. Khám phá ngay bài viết này nếu bạn đang học lập trình java để tích lũy kiến thức hữu ích này.

Lập trình đa luồng trong lập trình Java

Lập trình đa luồng (multi-threading) trong Java là một kỹ thuật mạnh mẽ cho phép một ứng dụng thực thi nhiều phần công việc (luồng - thread) đồng thời. Điều này giúp tận dụng tối đa tài nguyên CPU và cải thiện hiệu suất của ứng dụng. Dưới đây là một số khái niệm cơ bản và ví dụ chi tiết về lập trình đa luồng trong Java.

Khái niệm cơ bản về đa luồng trong Java

  • Thread: Là đơn vị cơ bản của CPU để thực thi một quá trình. Trong lập trình Java, các luồng được quản lý bởi máy ảo Java (JVM).
  • Multi-threading: Là khả năng thực hiện nhiều luồng đồng thời trong một ứng dụng. Điều này giúp tăng cường hiệu suất và tính đáp ứng của ứng dụng.



Cách tạo luồng trong Java
Có hai cách chính để tạo luồng trong Java:
1. Kế thừa lớp Thread:

class MyThread extends Thread {
    public void run() {
        System.out.println("Thread đang chạy...");
    }
}
 
public class Main {
    public static void main(String[] args) {
        MyThread t1 = new MyThread();
        t1.start();
    }
}
2. Triển khai giao diện Runnable:

class MyRunnable implements Runnable {
    public void run() {
        System.out.println("Thread đang chạy...");
    }
}
 
public class Main {
    public static void main(String[] args) {
        MyRunnable myRunnable = new MyRunnable();
        Thread t1 = new Thread(myRunnable);
        t1.start();
    }
}


Ví dụ chi tiết về lập trình đa luồng

Dưới đây là một ví dụ chi tiết về việc sử dụng đa luồng trong lập trình java để thực hiện hai tác vụ đồng thời: in số từ 1 đến 5 và in chữ cái từ A đến E.

class NumberThread extends Thread {
    public void run() {
        for (int i = 1; i <= 5; i++) {
            System.out.println(i);
            try {
                Thread.sleep(500); // Dừng 500ms
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
 
class LetterRunnable implements Runnable {
    public void run() {
        for (char c = 'A'; c <= 'E'; c++) {
            System.out.println(c);
            try {
                Thread.sleep(500); // Dừng 500ms
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
 
public class Main {
    public static void main(String[] args) {
        NumberThread numberThread = new NumberThread();
        Thread letterThread = new Thread(new LetterRunnable());
 
        numberThread.start();
        letterThread.start();
    }
}
Giải thích mã:

  • Lớp NumberThread: Kế thừa từ lớp Thread và ghi đè phương thức run để in các số từ 1 đến 5.
  • Lớp LetterRunnable: Triển khai giao diện Runnable và ghi đè phương thức run để in các chữ cái từ A đến E.
  • Lớp Main: Tạo và khởi động hai luồng để thực hiện các tác vụ đồng thời.

Đầu ra khi chạy chương trình trên máy tính cho ra kết quả như sau:

1
A
2
B
3
C
4
D
5
E
Kết quả này mỗi thời điểm chạy có thể in ra nội dung theo thứ tự khác nhau. Nguyên nhân là do 2 công việc này được thực hiện song song hay đa luồng trên máy tính xử lý.

Lập trình đa luồng giúp ứng dụng của bạn trở nên mạnh mẽ và hiệu quả hơn. Như vậy qua bài viết này Stanford đã giúp các bạn học lập trình java hiểu hơn về lập trình đa luồng qua những ví dụ cụ thể ở trên. Để hiểu rõ những kiến thức lập trình đa luồng trong java này các bạn có thể làm theo ví dụ trong bài viết nhé. Chúc các bạn thành công !

Bên cạnh đó bạn có thể bắt đầu ngay con đường chinh phục trở thành lập trình viên chuyên nghiệp java trong tương lai của mình bằng việc đăng ký tham gia khoá học lập trình java tại đây: http://bit.ly/2SLPYFF. Hoặc gọi ngay cho Stanford theo hotline: 0963.723.236 - 0866.586.366 để được gọi lại tư vấn trực tiếp nhé.

==========🎬 🎬 🎬==========
☎️STANFORD – ĐÀO TẠO VÀ PHÁT TRIỂN CÔNG NGHỆ
Hotline: 0963 723 236 - 0866 586 366
Website: https://stanford.com.vn
Facebook: https://www.facebook.com/Stanford.com.vn
Youtube: http://bit.ly/2TkKT7I

Tags: lập trình đa luồng java, multithread java