我有一个程序,要占用很大的内存,但是又要用多线程的,所以内存占用量很大,
现在程序运行过程中突然不动了。也不抛出异常,物理内存的可以利用的部分不足10M。运行时加了java -Xms128m -Xmx1024m
请问有什么办法解决中止的问题?

解决方案 »

  1.   

    >>>请问有什么办法解决中止的问题?
    难道程序无法正常终止?楼主到底是想解决什么问题?
      

  2.   

    比如一个bat文件,运行中就突然停住了,需要手动才能停止。
      

  3.   

    >>>运行中就突然停住了
    你怎么知道停住了?如果真的是停住了,是死锁吗?>>>需要手动才能停止
    逻辑上的停止条件是什么,你希望什么时候它自己停止
      

  4.   

    >>>硬盘好像也停止了。
    那肯定是死锁了嘛如果是内存问题,肯定是会抛异常的
    检查你的程序!
      

  5.   

    for (int j = 0; j < pImageList.length; j++) {
    boolean flag = true;
    if (threads.size() < threadNum) {
    ImageDivideProcess idp = new ImageDivideProcess();
    idp.setPImageName(pImageList[j].getName());
    Thread t = new Thread(idp);
    threads.addElement(t);
    t.start();
    } else {
    while (flag) {
    try {
    Thread.sleep(100);
    } catch (InterruptedException ite) {
    ite.printStackTrace();
    }
    for (int i = 0; i < threads.size(); i++) {
    Thread t = threads.elementAt(i);
    if (!t.isAlive()) {
    threads.removeElementAt(i);
    ImageDivideProcess idp = new ImageDivideProcess();
    idp.setPImageName(pImageList[j].getName());
    t = new Thread(idp);
    threads.addElement(t);
    t.start();
    flag = false;
    break;
    }
    }
    }
    }

    }