日期:2014-05-20  浏览次数:20742 次

java里同一个线程能执行两次吗
就是说
Thread t1 = new Thread();
t1.start();

现在t1执行;
我想让t1执行完了再执行一遍
如何做?

------解决方案--------------------
在run里面
while(true){

if(。。。。){

break
}

}
------解决方案--------------------
如果你想让T1里的内容执行两次,我建议你在这个线程里加上while(true)循环
------解决方案--------------------
线程池,请求多于3个就等待!
------解决方案--------------------
可以继承 Ruannable接口,这样在启用一个线程多次启用~~ 
public class Jar implements Runnable{

int a = 3; 
public void run(){
a++;
System.out.println(a);
}

public static void main(String [] args){
Jar r = new Jar();
new Thread(r).start();
new Thread(r).start();
new Thread(r).start();
String a = new String("a");
String b = new String("a");

if(a == b)
{
System.out.println("=");
}
if(a.equals(b))
{
System.out.println("e");
}
}
------解决方案--------------------
一个线程是不能执行两次的,一但start()之后,结束了就不能再去调用,像你的T1一样,结束就没了,除非再new Thread(),要执行同样的代码,可以一直产生新的线程去调用.
------解决方案--------------------

public class Jar implements Runnable{

int a = 3; 
public void run(){
a++;
System.out.println(a);
}

public static void main(String [] args){
Jar r = new Jar();
new Thread(r).start();
new Thread(r).start();
new Thread(r).start();
String a = new String("a");
String b = new String("a");

if(a == b)
{
System.out.println("=");
}
if(a.equals(b))
{
System.out.println("e");
}
}
}
打印结果:

4
e
5
6

------解决方案--------------------
我看你的意思是这个的,服务器启动3个线程来为客户端服务,当服务完成后,线程就会执行完退出,但是你想重新启动线程,来为下个客户服务,是这样吧?
那么我的想法是你得有个控制器,这个控制器负责接收用户请求,并将请求分发给各个工作线程,这个控制器必须知道三个工作线程目前处于什么生命周期,如果工作线程执行完,则控制器负责重新启动工作线程为用户服务。
这个东西做大了就是个跟Web容器差不多的东西。