java程序主线程中开启三个线程,但运行时只有一个线程活着是怎么回事?
java程序主线程中start开启三个线程,但运行时只有一个线程活着,而且活着的总是先开启的那个线程,是怎么回事?放不下太多字,只能简单表示一下了,主方法类://创建线程...
java程序主线程中start开启三个线程,但运行时只有一个线程活着,而且活着的总是先开启的那个线程,是怎么回事?
放不下太多字,只能简单表示一下了,主方法类:
//创建线程
Spider spider1=new Spider(IrrelevantWordsArray, SymbolWordsArray, BDBFrontier);
Spider spider2=new Spider(IrrelevantWordsArray, SymbolWordsArray, BDBFrontier);
Spider spider3=new Spider(IrrelevantWordsArray, SymbolWordsArray, BDBFrontier);
Thread thread1=new Thread(spider1);
Thread thread2=new Thread(spider2);
Thread thread3=new Thread(spider3);
thread3.start();
thread1.start();
thread2.start();
Spider线程类中是运行同样的抓取代码,其中用到同步机制,问题是上面我先start哪个线程,哪个就执行,其他两个就终止找不到了。。。 展开
放不下太多字,只能简单表示一下了,主方法类:
//创建线程
Spider spider1=new Spider(IrrelevantWordsArray, SymbolWordsArray, BDBFrontier);
Spider spider2=new Spider(IrrelevantWordsArray, SymbolWordsArray, BDBFrontier);
Spider spider3=new Spider(IrrelevantWordsArray, SymbolWordsArray, BDBFrontier);
Thread thread1=new Thread(spider1);
Thread thread2=new Thread(spider2);
Thread thread3=new Thread(spider3);
thread3.start();
thread1.start();
thread2.start();
Spider线程类中是运行同样的抓取代码,其中用到同步机制,问题是上面我先start哪个线程,哪个就执行,其他两个就终止找不到了。。。 展开
5个回答
2014-08-20
展开全部
其他线程没有获得内存资源 其他线程处于等待或者就绪状态
追问
那是什么原因造成的呢,我感觉是直接就终止了,连等待也没有
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你不贴代码,别人怎么知道你是怎么写的呢
追问
只写了一部分主方法中的,写不下了,线程类中同步应该没有错,而且开两个线程时一般没事,开三个线程就有这样的问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你确定你线程一直有任务在运行么?
追问
嗯,一直有任务,开两个线程没出现这个问题,开三个就只有一个在一直运行了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
运用了加锁机制??
追问
Spider线程类中运用了,但应该不是同步的问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询