public class WebCrawler {
public static Integer i=0;
public static void main(String[] args) {
BlockingQueue<String> queue = new ArrayBlockingQueue<String>(10);
for(int i=1;i<11;i++){
int page = i * 25 - 1;
String page1 = page + "";
String url ="https://movie.douban.com/top250?start=" + page1 + "";
queue.offer(url);
}
System.out.println(queue);
Runcrawler r = new Runcrawler();
r.setUrl("https://movie.douban.com/top250?start=1");
Runcrawler r1 = new Runcrawler();
r1.setUrl("https://movie.douban.com/top250?start=50");
Runcrawler r2 = new Runcrawler();
r2.setUrl("https://movie.douban.com/top250?start=77");
r.start();
r1.start();
r2.start();
}
class Runcrawler extends Thread{
private String url;
public void setUrl(String url){
this.url= url;
}
public void run(){
synchronized (i) {
i++;
}
}
在run方法里i找不到,我怎么在每个线程里给i+1?
我把i定义在了Runcrawler 这个类里好使,但是这不是同一个对象的i了把= =
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
你可以在Runcrawler 类里直接WebCrawler.i
有在线程对象 run方法里使用那个关键字这样的写法吗?要实现什么逻辑的
写到线程类实现里面就可以了