예제 #1
0
  @Test
  public void testLoad() {
    final PersistentQueue<Message> queue = new PersistentQueue<Message>("jk.store");
    queue.init();
    final Thread producer =
        new Thread() {
          @Override
          public void run() {
            for (int i = 0; i < 100000; i++) {
              queue.produce(new Message(i));
            }
          }
        };
    producer.setDaemon(false);
    producer.start();

    final Thread consumer =
        new Thread() {
          @Override
          public void run() {
            for (int i = 0; i < 100000; i++) {
              final Object message = queue.consume();
              if (message == null) {
                i--;
                continue;
              }
              Assert.assertEquals(((Message) message).index(), i, "Comparing the integer value");
            }
          }
        };
    consumer.setDaemon(false);
    consumer.start();

    while (producer.isAlive() || consumer.isAlive()) {
      try {
        Thread.sleep(100);
      } catch (InterruptedException e) {
        // do nothing
      }
    }
  }