我正在面临一个问题,同时使黑莓的应用程序,我有达7 threds电话,其中每个从服务器下载音频,它工作正常,但是当我开始我的应用程序两次然后一个未捕获异常已经发生,“太多线程错误异常”,所以,让我知道我该如何解决这个问题。太多的线程错误异常
3
A
回答
5
我认为,而不是启动7个线程使用单线程。 1.创建一个TaskWorker类
public class TaskWorker implements Runnable {
private boolean quit = false;
private Vector queue = new Vector();
public TaskWorker() {
new Thread(this).start();
}
private Task getNext() {
Task task = null;
if (!queue.isEmpty()) {
task = (Task) queue.firstElement();
}
return task;
}
public void run() {
while (!quit) {
Task task = getNext();
if (task != null) {
task.doTask();
queue.removeElementAt(task);
} else {// task is null and only reason will be that vector has no more tasks
synchronized (queue) {
try {
queue.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
public void addTask(Task task) {
synchronized (queue) {
if (!quit) {
queue.addElement(task);
queue.notify();
}
}
}
public void quit() {
synchronized (queue) {
quit = true;
queue.notify();
}
}
}
2.创建一个抽象任务类
public abstract class Task {
abstract void doTask();
}
3.现在创建任务。
public class DownloadTask extends Task{
void doTask() {
//do something
}
}
4.这个任务添加到taskworker线程
TaskWorker taskWorker = new TaskWorker();
taskWorker.addTask(new DownloadTask());
+0
谢谢先生,我尝试过。 – Farhan 2010-08-03 10:45:16
1
如果它发生在您重新启动应用程序,这意味着您必须有一些僵尸... 您确定要加入您的所有线程吗?
+0
是的,我在Invokelater()中逐个调用七个线程。 – Farhan 2010-08-03 08:25:47
相关问题
- 1. 太多的线程异常
- 2. AWS SES异常处理程序 - 太多的异常 - 错误太长
- 3. 太多的开放线程错误
- 4. 多线程。线程异常
- 5. 线程“main”异常中的错误java.util.InputMismatchException
- 6. 错误线程“main”中的异常java.lang.NullPointerException
- 7. 线程“主”错误中的异常
- 8. 错误:线程“主”中的异常java.lang.StringIndexOutOfBoundsException
- 9. 从错误的线程异常
- 10. 错误:线程“主”中的异常java.lang.NullPointerException
- 11. 线程错误中的Java异常
- 12. .NET异常太多
- 13. 线程中抛出错误(异常)
- 14. Viewroot从错误线程异常调用
- 15. 线程“主”异常java.io.FileNotFoundException:错误
- 16. Java错误与“线程异常”
- 17. 星火错误:异常线程“main” java.lang.UnsupportedOperationException
- 18. “线程异常”main“java.lang.StackOverflowError”错误?
- 19. 错误:异常线程 “main” java.lang.ArrayIndexOutOfBoundsException:2
- 20. Java错误“线程异常”main“java.lang.ArrayIndexOutOfBoundsException”
- 21. 线程“主”java.lang.ArrayIndexOutOfBoundsException异常:4错误
- 22. “线程异常”main“java.lang.NullPointerException”错误
- 23. “异常线程‘main’java.lang.ArrayIndexOutOfBoundsException:0” Java错误
- 24. Java错误“线程异常”main“java.lang.NullPointerException”
- 25. 异常在线程“主”java.lang.ArrayIndexOutOfBoundsException:0错误
- 26. 错误:异常线程“main” java.util.InputMismatchException
- 27. 错误:线程“JavaFX应用程序线程”中的异常
- 28. 获取“在线程中的异常”主“java.lang.StackOverflowError”和很多错误
- 29. “的ffmpeg”:java.io.IOException异常:错误= 24,打开的文件太多
- 30. 多线程InvalidOperationException异常C#
注意这里没有其他问题,如何有自己的全部大写的标题?你为什么选择与众不同? – 2010-08-03 07:53:46
通过减少线程? – 2010-08-03 08:04:15