30/09/2018, 18:36
đa luồng trong java
em đang code chương trình lấy dữ liệu từ một list các website. Cần tạo một số lượng luồng xác định đồng thời thực hiện việc kết nối tới website. Em đang bị mắc chỗ làm sao để tạo một luồng mới chỉ sau khi luồng trước đó đã hoàn thành các task của nó. rất mong được mọi người giúp đỡ.
import java.net.URL;
public class ThreadDemo extends Thread{
URL url;
private final int N_URL = 10000; //so luong url can lay du lieu
private final int MAX_THREAD = 30; //so luong thread duy tri lien tuc lon nhat
int activeThread; // so luong thread dang hoat dong
public ThreadDemo(){
}
@Override
public void run(){
for (int i = 0; i< N_URL/MAX_THREAD ; i++){
getData(url);
//làm sao để biết thread này đã hoàn thành công viêc
//để có thể tạo thread mới?
}
}
public void getData(URL url){
//do some thing to connect and get content from webpage
}
public int getActiveThread(){
return this.activeThread;
}
public static void main(String[] args) throws InterruptedException {
for(int j = 0; j < 30 ; j++){ //tao 30 thread song song
ThreadDemo demo = new ThreadDemo();
demo.start();
}
}
}
Bài liên quan
Bạn sử dụng Queue và ThreadPool nhé.