cs_amel2006
Messages postés83Date d'inscriptionsamedi 21 janvier 2006StatutMembreDernière intervention 9 décembre 2006
-
8 mai 2006 à 20:26
super_toinou
Messages postés764Date d'inscriptionmardi 25 mai 2004StatutMembreDernière intervention 8 mars 2011
-
9 mai 2006 à 15:37
dans mon projet je doit se connecter à des moteur de recherche et récupérer des informations tel que dans mon programme je met ces information dans un fichier spécifie pour chaque source
pour la connexion je lance les thread à l'aide d'une boucle for ce qui me rend l'execution séquentielle et non pas parallèle
private static String req = URLEncoder.encode("recherche");
// private static String langue = URLEncoder.encode("fr");//en ou any
// private static String format = URLEncoder.encode("any");
String nom;
String nomf;
public static Thread T1;
connexion (String s,String d ) {
nom=s;
nomf=d;
}
public void run()
{ try
{ URL url = new URL(nom);
HttpURLConnection uc = (HttpURLConnection) url.openConnection();
String userAgent = "agent utilisateur" ;
uc.setRequestProperty("User-Agent", userAgent);
InputStream in = uc.getInputStream();
int c =0;
StringBuffer build = new StringBuffer();
while (c != -1)
{
//lecture 1ere partie du caracter unicode
c = in.read()<<8;
//lecture de la 2eme partie
c=c | (in.read());
// c contient maintenant la valeur du caractere unicode
build.append((char) c);
}
System.out.println("fg;yhfghfgchuyghhhhhhhhhh");
File f = new File("temp/"+nomf+".txt");
DataOutputStream flux = new DataOutputStream(new FileOutputStream(f,true));
flux.writeChars(build.toString());
try {T1.sleep(1000); } catch (InterruptedException e) {System.out.println("sleep non marche"); }
flux.close();
cs_amel2006
Messages postés83Date d'inscriptionsamedi 21 janvier 2006StatutMembreDernière intervention 9 décembre 20061 9 mai 2006 à 15:31
mon problème est que il n'ya pas de paralilisme entre les thread car je lance plusieurs thread à l'aide d'une boucle for mais à l'execution je vois la séquentiellité
merci de votre aide
super_toinou
Messages postés764Date d'inscriptionmardi 25 mai 2004StatutMembreDernière intervention 8 mars 20116 9 mai 2006 à 15:37
vu que j suis au taff j peux pas regarder en détail mais y a des trucs que j comprend pas !!
si ta thread T1 est en static ca veut dire que t utilise qu une seule thread a la fois (ce qui peut expliquer la séquentialité)
en + j vois pas pkoi t as un thread dans un thread (cad T1 est dans connnexion qui est déjà un thread)
pkoi tu fé pas une classe
Connexion extends Thread avec un constructeur qui prend comme info ou il doit se connecter et dans quel fichier il doit ecrire et dans une classe Programme tu lance tout !!!
pis a la fin de ta boucle tu fé un Thread.joinAll histoire d attendre que tout le monde ai fini et apres t affiche tout tes trucs !!
Courage !!
++ Toinou