Guten Morgen,
folgendes Problem hindert mich am weiterkommen.
Main.java:
Hier erstelle ich 4 Threads die Parrallel laufen sollen. Tun sie auch, dummerweise tun sie alle das gleiche, was dann durch höheren speicherverbrauch die Sache nicht schneller sondern langsamer macht.
Bot.java
Das hier ist die Klasse die der Thread aufruft. Innerhalb des Aufrufes werden Objekte anderer Klassen im selben Paket erzeugt und es wird mit ihnen gearbeitet.
ProxyUsage.java:
Hier noch der Vollständigkeit halber die Klasse die das eigendliche Objekt erzeugt das die Proxies beinhaltet.
Der Aufruf von Main.java sieht in etwa so aus:
In erster Linie interessiert mich natürlich wie ichs möglich machen kann das die 4 Threads nicht dasselbe tun. Dazu wäre noch gut zu wissen ob die Threads jeweils für sich ein Objekt der Klasse ProxyUsage erzeugen, oder ob das einmal erzeugt wird und alle dann darauf zugreifen.
Vielen Dank für jede Hilfe
folgendes Problem hindert mich am weiterkommen.
Main.java:
Java:
public class Main {
public static void main(String[] args) {
Bot t1, t2, t3, t4;
t1 = new Bot();
t2 = new Bot();
t3 = new Bot();
t4 = new Bot();
t1.start();
t2.start();
t3.start();
t4.start();
}
}
Bot.java
Java:
public class Bot extends Thread {
@Override
public void run() {
......
ProxyUsage pu1 = new ProxyUsage();
pu1.setProxylist("E:/Proxylists/23.06.2010.txt");
for (int i = 10; i < pu1.countProxies; i++) {
try {
String currentProxy = pu1.getCurrentProxy();
Testobjekt t1 = new Testobjekt();
t1.setcHostname(profildetails[0]);
t1.setcProxy(currentProxy);
String[] reply = t1.teste();
t1.setsInput(reply[0]);
t1.setsServerantwort(reply[1]);
t1.setsGoodkey(profildetails[1]);
t1.setsBadkey(profildetails[2]);
String testantwort = t1.searchGoodOrBad();
if (testantwort.equals("Suchstring")) {
System.out.println("Suchstring gefunden: (" + currentProxy + ")");
} else {
System.out.println("Suchstring nicht gefunden: (" + currentProxy + ")");
pu1.setNextProxy();
}
} catch (Exception exAll) {
System.out.println("Fehler:" + exAll);
System.out.println("Proxy: " + pu1.getCurrentProxy());
pu1.setNextProxy();
}
......
}
}
ProxyUsage.java:
Java:
public class ProxyUsage {
private String[] proxylist;
private int proxycounter = 0;
public void setProxylist(String filename) {
try {
FileReader fileReader = new FileReader(filename);
BufferedReader bufferedReader = new BufferedReader(fileReader);
List<String> lines = new ArrayList<String>();
String line = null;
while ((line = bufferedReader.readLine()) != null) {
lines.add(line);
}
bufferedReader.close();
String[] a1 = lines.toArray(new String[lines.size()]);
proxylist = a1;
} catch (IOException ex) {
System.out.println("Datei nicht gefunden!");
}
}
public int getProxycounter() {
return proxycounter;
}
public synchronized String getCurrentProxy() {
return proxylist[getProxycounter()];
}
public void setNextProxy() {
++proxycounter;
}
}
Der Aufruf von Main.java sieht in etwa so aus:
Fehler:java.net.ConnectException: Connection refused: connect
Proxy: 212.117.166.26:8138
Fehler:java.net.ConnectException: Connection refused: connect
Proxy: 212.117.166.26:8138
Fehler:java.net.ConnectException: Connection refused: connect
Proxy: 212.117.166.26:8138
Fehler:java.net.ConnectException: Connection refused: connect
Proxy: 212.117.166.26:8138
In erster Linie interessiert mich natürlich wie ichs möglich machen kann das die 4 Threads nicht dasselbe tun. Dazu wäre noch gut zu wissen ob die Threads jeweils für sich ein Objekt der Klasse ProxyUsage erzeugen, oder ob das einmal erzeugt wird und alle dann darauf zugreifen.
Vielen Dank für jede Hilfe