VietTuts

Tự Học Lập Trình Online

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • MyBatis
  • Java WS
  • C
  • C++
  • C#
  • Python
  • PHP
  • Excel
  • VBA
  • Web
    • JavaScript
    • JQUERY
    • JSON
    • AJAX
    • CSS
    • HTML
    • HTML5
    • Node.js
    • Angular 7
  • SQL
    • MySQL
    • SQL Server
  • Misc
    • Eclipse
    • Phần mềm tiện ích
    • Cấu trúc DL&GT
    • Selenium Test
Java Cơ Bản Các Khái Niệm Java OOPs Java String Xử Lý Ngoại Lệ Các Lớp Lồng Nhau

Đa Luồng (Multithreading)

Java Thread Đa luồng trong java Vòng đởi của Thread Tạo Thread Thread Scheduler Sleep một thread Start một thread hai lần Gọi phương thức run() Phương thức join() Đặt tên cho thread Mức ưu tiên của một Thread Luồng hiểm Thread Pool Thread Group Shutdown Hook Thực hiện nhiều task Garbage Collection Lớp Runtime

Java Synchronization

Phương thức synchronization Khối synchronized Đồng bộ static Deadlock trong java Giao tiep giua cac thread Interrupt một Thread
Java AWT Java Swing Java I/O Ví Dụ Java I/O Lập Trình Mạng Với Java Java Date Chuyển Đối Kiểu Dữ Liệu Java Collections Java JDBC Các Tính Năng Mới Trong Java Bài Tập Java Có Lời Giải Câu Hỏi Phỏng Vấn Java
1 / 3
❮ ❯

Phương thức join() - Java Thread


Gọi phương thức run()
Đặt tên cho thread và thread hiện tại

Phương thức join() chờ một thread chết. Nói cách khác, nó làm cho các thread đang chạy ngừng hoạt động cho đến khi luồng mà nó tham gia hoàn thành nhiệm vụ của nó.

Nội dung chính

  • Các dạng phương thức join()
  • Các phương thức getName(),setName(String) và getId()
  • Phương thức currentThread()

Các dạng phương thức join()

  • public void join()throws InterruptedException
  • public void join(long milliseconds)throws InterruptedException

Ví dụ về phương thức join()

class TestJoinMethod1 extends Thread {
    public void run() {
        for (int i = 1; i <= 5; i++) {
            try {
                Thread.sleep(500);
            } catch (Exception e) {
                System.out.println(e);
            }
            System.out.println(i);
        }
    }

    public static void main(String args[]) {
        TestJoinMethod1 t1 = new TestJoinMethod1();
        TestJoinMethod1 t2 = new TestJoinMethod1();
        TestJoinMethod1 t3 = new TestJoinMethod1();
        t1.start();
        try {
            t1.join();
        } catch (Exception e) {
            System.out.println(e);
        }

        t2.start();
        t3.start();
    }
}

Output:

1
2
3
4
5
1
1
2
2
3
3
4
4
5
5

Như bạn thấy trong ví dụ trên, khi t1 hoàn thành nhiệm vụ của nó thì t2 và t3 bắt đầu thực thi.

Ví dụ về phương thức join(long miliseconds)

class TestJoinMethod2 extends Thread {
    public void run() {
        for (int i = 1; i <= 5; i++) {
            try {
                Thread.sleep(500);
            } catch (Exception e) {
                System.out.println(e);
            }
            System.out.println(i);
        }
    }

    public static void main(String args[]) {
        TestJoinMethod2 t1 = new TestJoinMethod2();
        TestJoinMethod2 t2 = new TestJoinMethod2();
        TestJoinMethod2 t3 = new TestJoinMethod2();
        t1.start();
        try {
            t1.join(1500);
        } catch (Exception e) {
            System.out.println(e);
        }

        t2.start();
        t3.start();
    }
}

Output:

1
2
3
4
1
1
5
2
2
3
3
4
4
5
5

Trong ví dụ trên, khi t1 hoàn thành nhiệm vụ của nó cho 1500 mili giây (3 lần) thì t2 và t3 bắt đầu thực thi.

Các phương thức getName(),setName(String) và getId()

public String getName()

public void setName(String name)

public long getId()

class TestJoinMethod3 extends Thread {
    public void run() {
        System.out.println("running...");
    }

    public static void main(String args[]) {
        TestJoinMethod3 t1 = new TestJoinMethod3();
        TestJoinMethod3 t2 = new TestJoinMethod3();
        System.out.println("Name of t1:" + t1.getName());
        System.out.println("Name of t2:" + t2.getName());
        System.out.println("id of t1:" + t1.getId());

        t1.start();
        t2.start();

        t1.setName("Sonoo Jaiswal");
        System.out.println("After changing name of t1:" + t1.getName());
    }
}

Output:

Name of t1:Thread-0
Name of t2:Thread-1
id of t1:10
running...
After changing name of t1:Sonoo Jaiswal
running...

Phương thức currentThread()

Phương thức currentThread() trả về một tham chiếu đến đối tượng thread hiện đang thực thi.

Ví dụ về phương thức currentThread()

class TestJoinMethod4 extends Thread {
    public void run() {
        System.out.println(Thread.currentThread().getName());
    }

    public static void main(String args[]) {
        TestJoinMethod4 t1 = new TestJoinMethod4();
        TestJoinMethod4 t2 = new TestJoinMethod4();

        t1.start();
        t2.start();
    }
}

Output:

Thread-0
Thread-1

Gọi phương thức run()
Đặt tên cho thread và thread hiện tại

Recent Updates

Xuất dữ liệu ra màn hình console trong JavaCài đặt môi trường JavaJava Swing - Bài tập quản lý sinh viên trong javaLinkedList trong javaArrayList trong javaBài tập java có lời giảiSử dụng Javascript trong HTMLToán tử dấu 2 chấm (::) trong Java 8Lambda Expression - Biểu thức Lambda trong java 8Bài tập Java - Sắp xếp nhanh (Quick Sort) trong JavaBài tập Java - Sắp xếp chèn (Insertion Sort) trong JavaBài tập Java - Sắp xếp nổi bọt (Bubble Sort) trong JavaSắp Tết 2026 Rồi! - Còn bao nhiêu ngày nữa là đến tết 2026?

VietTuts on facebook

Học Lập Trình Online Miễn Phí - VietTuts.Vn
Danh Sách Bài Học

Học Java | Hibernate | Spring
Học Excel | Excel VBA
Học Servlet | JSP | Struts2
Học C | C++ | C#
Học Python
Học SQL

Bài Tập Có Lời Giải

Bài tập Java
Bài tập C
Bài tập C++
Bài tập C#
Bài tập Python
Ví dụ Excel VBA

Câu Hỏi Phỏng Vấn

201 câu hỏi phỏng vấn java
25 câu hỏi phỏng vấn servlet
75 câu hỏi phỏng vấn jsp
52 câu hỏi phỏng vấn Hibernate
70 câu hỏi phỏng vấn Spring
57 câu hỏi phỏng vấn SQL

Scroll back to top

Copyright © 2016 VietTuts.Vn all rights reserved. | Liên hệ | Chính sách - riêng tư | sitemap.html | sitemap_index.xml