• Post Reply Bookmark Topic Watch Topic
  • New Topic

multi thread in jsp

 
Alex Chon
Greenhorn
Posts: 6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
hi all,
i have a jsp program which use to download some files in the internet. i try to make it into mutli threading download. but at the end it still run in single thread. please help me. thanks.

<%@ page import="java.io.*"%>
<%@ page import="java.net.URL"%>
<%@ page import="java.net.URLConnection"%>



<%
String inStr="http://hgdownload.cse.ucsc.edu/goldenPath/hg17/vsMm5/axtNet/chr";
URL m_URL = null;
URLConnection m_URLConn = null;
boolean m_bOk = true;

Thread thread1 = new Thread("T1");
Thread thread2 = new Thread("T2");
thread1.start();
thread2.start();
boolean thread1IsAlive = true;
boolean thread2IsAlive = true;

do {
if(thread1IsAlive && !thread1.isAlive())
{
thread1IsAlive = false;


try
{
thread1.join();
int x=1;
String x_str = "";
do{
x_str = Integer.toString(x);
if (x==23) x_str = "X";
else if (x==24) x_str="Y";

m_URL = new URL(inStr+x_str+".axt.gz");
m_URLConn = m_URL.openConnection();
URLConnection uc = m_URL.openConnection();
//InputStream in = new FileInputStream(uc.getInputStream());
ByteArrayOutputStream bs = new ByteArrayOutputStream(9999);
int i;
String sFile = "c:\\downloadChr\\mhuman\\chr"+x_str+".axt.gz";
System.out.println("Getting file " + sFile);
File of = new File(sFile);
while(-1 != (i = in.read()))
bs.write(i);
in.close();
byte bt[] = bs.toByteArray();
FileOutputStream fos = new FileOutputStream(of);
fos.write(bt);
fos.close();
System.out.println("Thread 1 is dead.");

} while(x++ <12); //do
}//try
catch(Exception e)
{
e.printStackTrace();
}
}

if(thread2IsAlive && !thread2.isAlive())
{
thread2IsAlive = false;


try{
thread2.join();
int x=13;
String x_str = "";
do{
x_str = Integer.toString(x);
if (x==23) x_str = "X";
else if (x==24) x_str="Y";
m_URL = new URL(inStr+x_str+".axt.gz");
m_URLConn = m_URL.openConnection();
URLConnection uc = m_URL.openConnection();
InputStream in = new BufferedInputStream(uc.getInputStream());
ByteArrayOutputStream bs = new ByteArrayOutputStream(9999);
int i;
String sFile = "c:\\downloadChr\\mhuman\\chr"+x_str+".axt.gz";
System.out.println("Getting file " + sFile);
File of = new File(sFile);
while(-1 != (i = in.read()))
bs.write(i);
in.close();
byte bt[] = bs.toByteArray();
FileOutputStream fos = new FileOutputStream(of);
fos.write(bt);
fos.close();
System.out.println("Thread 2 is dead.");
} while(x++ <24); //do
}//try
catch(Exception e)
{
e.printStackTrace();
}

}//if
} while(thread1IsAlive || thread2IsAlive);

%>
 
William Brogden
Author and all-around good cowpoke
Rancher
Posts: 13078
6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

What exactly did you think this was going to do?
Look at the JavaDocs for the run method in Thread and read the discussion for Thread in general to figure out what really happens.
Bill
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!