Tại sao ta phải hiểu về luồng. Tại sao ta phải hiểu về Thread.
Ví dụ: Khi bạn chạy windows, tại một thời điểm bạn vừa chơi game, xem phim, nghe nhạc…
Tại sao nó có thể làm điều đó, tại sao nó có thể chạy được nhiều tác vụ một lúc?
Mỗi khi một chương trình được bật nên máy tính sẽ cấp cho nó một cái tiến trình. Nếu bật 10 chương trình thì máy tính sẽ cấp cho bạn 10 tiến trình. Bạn cảm giác như tại một thời điểm cùng chạy một lúc. Các tiến trình sẽ chạy lần lượt theo vòng tròn liên tục từ tiến trình 1 cho đến 10 rồi lại tiếp tục để các tiến tình không bị delay.
Vậy luồng ở đây là gì. Khi ta lập trình Game nó là một tiến trình . Khi bạn chơi game vừa chat thì nhận vật vẫn hoạt động, cũng như download update ngầm… mỗi cái tác vụ này nó gọi là một luồng. Chương trình phải sinh ra rất nhiều luồng khác nhau.
Ví dụ về khai báo luồng:
package test.lession5;
public class ThreadJava {
public static void main(String[] args) {
//Thread main -> Luong chinh
System.out.println("Start");
Thread t = new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("Thread 1 > " + i);
}
}
});
t.start();
Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("Thread 2 > " + i);
}
}
});
t1.start();
// Cu phap ngan gon
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Thread 3");
}
}).start();
// Cu phan lambda
new Thread(() ->{
System.out.println("Thread 4");
}).start();
System.out.println("End");
}
}
Leave a comment