当前位置: 代码迷 >> J2EE >> 大侠多线程的有关问题
  详细解决方案

大侠多线程的有关问题

热度:372   发布时间:2016-04-22 03:44:41.0
请教各位大侠多线程的问题
本人正在做一项目, 后台处理有四五个线程。 而且只有着几个线程 不会增加也不会减少 每隔一段时间这些线程要运行一遍, 线程做好了 就是不知道该怎么控制它们 启动以后就不知道该怎么控制它们再启动。 需不需要线程池来控制 。 大家教教小弟我。
  小弟对于多线程是白痴一个 
  所以还请各位大侠不惜赐教  
  感激不尽!~~

------解决方案--------------------
public class ServerThread implements Runnable{

Vector<ServerThread> m_threads;
String ipp = null;

public ServerThread(String ip,Vector<ServerThread> threads) {
ipp = ip;
m_threads = threads;

}

public void run(){
try{
Thread.sleep(20000);
String average = "";
boolean status = false;
try {
int timeOut = 10000;
status = InetAddress.getByName(ipp).isReachable(timeOut); 
System.out.println(status+ipp);

------解决方案--------------------
implements Runnable下的run函数

这个就可以启动了

我这个同时九百多个,一起。

没有事情
------解决方案--------------------
你可以使用 wait() 方法,这个方法是导致线程停止并且放弃线程锁,

等到需要启动线程时调用 notify() 方法就可以启动它
------解决方案--------------------
用我做好的线程的东西,可以省掉不少烦恼,代码示范如下:

Java code
// 实现处理的类public class TestStringProcessor extends QueueProcessor<String> {    public TestStringProcessor(){        super();    }    @Override    public void process(String obj) {        System.out.println("Processed by " + this.getName() + " : " + obj);    }}…// 20个处理线程        ArrayList<QueueConsumer<String>> processors =                 new ArrayList<QueueConsumer<String>>(20);        for (int i = 0; i < 20; i ++){            processors.add(new TestStringProcessor());        }// 并发地从一个长度为200的队列取数据进行处理        QueueConsumerGroup<String> group =             new QueueConsumerGroup<String>(200, processors);// 开始并行处理        group.start();// 向队列送入待处理的数据        for (int i = 0; i < 250; i ++){            String s = "This is a string_" + i;            try {                group.queue(s);            } catch (InterruptedException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }            System.out.println("Queued: " + s);        }//等待队列处理空了之后结束        group.stop();        System.out.println("All finished!");
------解决方案--------------------
线程不能让其停止,以前上学校,就说不能用stop来停止线程,如果要停止,只能用break来结束它!
让他不断的运行可以用while(true)在里面程动线程,一个死循环,线程就不会停了,里面可以加个if 条件,再满足什么条件下,就让他break;这样线程就会结束!再者,你说让线程每格一断时间,再运行,你可以用Thread.sleep(long time)方法让线程来睡眠;
再不行的话,就让隔一阵再生成一个线程,但必需要有一个激发方法,来让它创建!
  相关解决方案