线程安全主要考虑那些方面?
我觉得我的程序里面的系统属性设置和文件的读写可能不安全?
///////////////////////////////////////代码////////////////////////////////////////////////import java.net.URL;
import java.net.URLConnection;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.Properties;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
public class HttpRequest {

public static final int POST = 0;
public static final int GET = 1;
private String protocol=null;
private String serverDomain=null;
private String serverPort=null;
private String proxyDomain=null;
private String proxyPort=null;
private String proxyUsername=null;
private String proxyPassword=null;
private String cookie=null;
private String returnFilename=null;

HttpRequest()
{

}

public HttpRequest(String protocol,String serverDomain,String serverPort)
{
this.protocol=protocol;
this.serverDomain=serverDomain;
this.serverPort=serverPort;

}

public HttpRequest(String protocol,String serverDomain,String serverPort,String proxyDomain,String proxyPort)
{
this(protocol,serverDomain,serverPort);
this.proxyDomain=proxyDomain;
this.proxyPort=proxyPort;


}

public HttpRequest(String protocol,String serverDomain,String serverPort,String proxyDomain,String proxyPort,String proxyUsername,String proxyPassword)
{
this(protocol,serverDomain,serverPort,proxyDomain,proxyPort);
this.proxyUsername=proxyUsername;
this.proxyPassword=proxyPassword;
}

public void setProtocol(String protocol)
{
this.protocol=protocol;
}

public void setServer(String serverDomain,String serverPort)
{
this.serverDomain=serverDomain;
this.serverPort=serverPort;

}

public void setProxy(String proxyDomain,String proxyPort)
{
this.proxyDomain=proxyDomain;
this.proxyPort=proxyPort;
}

public void setProxyInfo(String proxyUsername,String proxyPassword)
{
this.proxyUsername=proxyUsername;
this.proxyPassword=proxyPassword;
}

public void setCookie(String cookie)
{
this.cookie=cookie;
}

public String getCookie()
{
return cookie;
}

public void setReturnFilename(String returnFilename)
{
this.returnFilename=returnFilename;
}

   public void httpRequest(int command,String serverPage,String request,String uploadFilename)
   {
   String tempProxyDomain=null;
   String tempProxyPort=null;
    if(protocol.toLowerCase().equals("http"))
    {
     if(!(proxyDomain.equals(""))&&!(proxyPort.equals("")))
    {
    
     tempProxyDomain=System.getProperty("proxyHost");
     tempProxyPort=System.getProperty("proxyPort");
        System.setProperty("proxyHost",proxyDomain);
     System.setProperty("proxyPort",proxyPort);
     System.out.println("http proxy");
//      System.out.println(tempProxyDomain);
//      System.out.println(tempProxyPort);
    
    }
      }
    else if(protocol.toLowerCase().equals("https"))
    {
    
     tempProxyDomain=System.getProperty("https.proxyHost");
     tempProxyPort=System.getProperty("https.proxyPort");
        System.setProperty("https.proxyHost",proxyDomain);
     System.setProperty("https.proxyPort",proxyPort);
     System.out.println("https proxy");
//      System.out.println(tempProxyDomain);
//      System.out.println(tempProxyPort);
       }
   
    String str_url=null;     
    if(protocol.equalsIgnoreCase("http"))
    {
         str_url=protocol+"://"+serverDomain+"/"+serverPage+"?"+request;
    }
    else if(protocol.equalsIgnoreCase("https"))
    {
     str_url=protocol+"://"+serverDomain+"/"+serverPage;
    }
    else
    {
     System.out.println("Unknown protocol");
    }
    
    
    System.out.println(str_url);
URL url = null;
try {
url = new URL(str_url);
} catch (MalformedURLException e) {
System.out.println("Conntion fail 1!");
e.printStackTrace();
} HttpURLConnection con = null;
try {
con = (HttpURLConnection)url.openConnection();
con.setFollowRedirects(true);
System.out.println("set redirect");
} catch (IOException e) {
System.out.println("Conntion fail 2!");
e.printStackTrace();
}

if(command==POST)
{
con.setDoOutput(true);



}

try { BufferedReader in = new BufferedReader(new InputStreamReader(con
.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
} in.close();
} catch (IOException e) {
System.out.println("Conntion fail 3!");
e.printStackTrace();
}

if(protocol.toLowerCase().equals("http"))
    {
     if(!(proxyDomain.equals(""))&&!(proxyPort.equals("")))
    {
     if(tempProxyDomain!=null&&tempProxyPort!=null)
     {
            System.setProperty("proxyHost",tempProxyDomain);
         System.setProperty("proxyPort",tempProxyPort);
     }
    
    }
      }
    else if(protocol.toLowerCase().equals("https"))
    {
     if(!(proxyDomain.equals(""))&&!(proxyPort.equals("")))
    {
     if(tempProxyDomain!=null&&tempProxyPort!=null)
     {
                System.setProperty("https.proxyHost",tempProxyDomain);
             System.setProperty("https.proxyPort",tempProxyPort);
     }
       }
    }
  
   }
   
   private  boolean isProxy(String proxyDomain,String proxyPort)
{
//    if(!(proxyDomain.equals(""))&&!(proxyPort.equals("")))
   if(proxyDomain!=null&&proxyPort!=null)
   return true;
   return false;
   
}
 

}