當前位置: 首頁>>代碼示例>>Java>>正文


Java AtomicInteger類代碼示例

本文整理匯總了Java中java.util.concurrent.atomic.AtomicInteger的典型用法代碼示例。如果您正苦於以下問題:Java AtomicInteger類的具體用法?Java AtomicInteger怎麽用?Java AtomicInteger使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


AtomicInteger類屬於java.util.concurrent.atomic包,在下文中一共展示了AtomicInteger類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: WeightedRoundRobinMultiplexer

import java.util.concurrent.atomic.AtomicInteger; //導入依賴的package包/類
public WeightedRoundRobinMultiplexer(int aNumQueues, String ns,
  Configuration conf) {
  if (aNumQueues <= 0) {
    throw new IllegalArgumentException("Requested queues (" + aNumQueues +
      ") must be greater than zero.");
  }

  this.numQueues = aNumQueues;
  this.queueWeights = conf.getInts(ns + "." +
    IPC_CALLQUEUE_WRRMUX_WEIGHTS_KEY);

  if (this.queueWeights.length == 0) {
    this.queueWeights = getDefaultQueueWeights(this.numQueues);
  } else if (this.queueWeights.length != this.numQueues) {
    throw new IllegalArgumentException(ns + "." +
      IPC_CALLQUEUE_WRRMUX_WEIGHTS_KEY + " must specify exactly " +
      this.numQueues + " weights: one for each priority level.");
  }

  this.currentQueueIndex = new AtomicInteger(0);
  this.requestsLeft = new AtomicInteger(this.queueWeights[0]);

  LOG.info("WeightedRoundRobinMultiplexer is being used.");
}
 
開發者ID:naver,項目名稱:hadoop,代碼行數:25,代碼來源:WeightedRoundRobinMultiplexer.java

示例2: testNodes9

import java.util.concurrent.atomic.AtomicInteger; //導入依賴的package包/類
@Test
public void testNodes9() throws IOException, InterruptedException,
    KeeperException {

  int testIterations = 9;
  final CountDownLatch latch = new CountDownLatch(testIterations);
  final AtomicInteger failureCounter = new AtomicInteger();

  for (int i = 0; i < testIterations; i++) {
    runElectionSupportThread(latch, failureCounter);
  }

  Assert.assertEquals(0, failureCounter.get());

  if (!latch.await(10, TimeUnit.SECONDS)) {
    logger
        .info(
            "Waited for all threads to start, but timed out. We had {} failures.",
            failureCounter);
  }
}
 
開發者ID:didichuxing2,項目名稱:https-github.com-apache-zookeeper,代碼行數:22,代碼來源:LeaderElectionSupportTest.java

示例3: testGetItemsIsCalledIncreasing

import java.util.concurrent.atomic.AtomicInteger; //導入依賴的package包/類
@Test
public void testGetItemsIsCalledIncreasing() {
  final AtomicBoolean called = new AtomicBoolean(false);
  final AtomicInteger calledCount = new AtomicInteger();

  ListPreloaderAdapter preloaderAdapter = new ListPreloaderAdapter() {
    @NonNull
    @Override
    public List<Object> getPreloadItems(int position) {
      called.set(true);
      final int count = calledCount.getAndIncrement();
      assertEquals(11 + count, position);
      return super.getPreloadItems(position);
    }
  };
  ListPreloader<Object> preloader = new ListPreloader<>(requestManager,
      preloaderAdapter, preloaderAdapter, 10);
  preloader.onScroll(null, 1, 10, 30);
  assertEquals(10, calledCount.get());
}
 
開發者ID:weiwenqiang,項目名稱:GitHub,代碼行數:21,代碼來源:ListPreloaderTest.java

示例4: test211193

import java.util.concurrent.atomic.AtomicInteger; //導入依賴的package包/類
public void test211193() throws Exception {
    writeFilesAndWaitForScan(src,
            new File("t/A.java", "package t;\n"
            + "public class A {\n"
            + "    public static void foo() {\n"
            + "        int someArray[] = {};\n"
            + "    }\n"
            + "}"));
    FileObject testFile = src.getFileObject("t/A.java");
    DataObject testFileDO = DataObject.find(testFile);
    EditorCookie ec = testFileDO.getLookup().lookup(EditorCookie.class);
    ec.open();
    ec.getOpenedPanes()[0].setCaretPosition(71);
    ec.getOpenedPanes()[0].moveCaretPosition(80);
    final AtomicInteger called = new AtomicInteger();
    ContextAnalyzer.SHOW = new ContextAnalyzer.ShowUI() {
        @Override
        public void show(RefactoringUI ui, TopComponent activetc) {
            assertNotNull(ui);
            called.incrementAndGet();
        }
    };
    int expectedCount = 0;
    new RefactoringActionsProvider().doRename(Lookups.fixed(ec));
    assertEquals(++expectedCount, called.get());
}
 
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:27,代碼來源:JavaRefactoringActionsProviderTest.java

示例5: expectPolls

import java.util.concurrent.atomic.AtomicInteger; //導入依賴的package包/類
private CountDownLatch expectPolls(int minimum, final AtomicInteger count) throws InterruptedException {
    final CountDownLatch latch = new CountDownLatch(minimum);
    // Note that we stub these to allow any number of calls because the thread will continue to
    // run. The count passed in + latch returned just makes sure we get *at least* that number of
    // calls
    EasyMock.expect(sourceTask.poll())
            .andStubAnswer(new IAnswer<List<SourceRecord>>() {
                @Override
                public List<SourceRecord> answer() throws Throwable {
                    count.incrementAndGet();
                    latch.countDown();
                    return RECORDS;
                }
            });
    // Fallout of the poll() call
    expectSendRecordAnyTimes();
    return latch;
}
 
開發者ID:YMCoding,項目名稱:kafka-0.11.0.0-src-with-comment,代碼行數:19,代碼來源:WorkerSourceTaskTest.java

示例6: test

import java.util.concurrent.atomic.AtomicInteger; //導入依賴的package包/類
@Test
public void test() throws InterruptedException {
  AtomicInteger incrementor = new AtomicInteger();
  ResettableEvent are = new ResettableEvent(true);
  ResettableEvent done = new ResettableEvent(false);

  ExecutorService threadPool = Executors.newFixedThreadPool(3);
  for (int i = 0; i < 10; i++) {
    threadPool.submit(Interrupted.unchecked(() -> {
      are.getAndReset();
      incrementor.incrementAndGet();
      done.set();
    }));
  }

  done.getAndReset();
  Thread.sleep(100); // give a little time to other threads to increment, if there's indeed a bug
  assertEquals(1, incrementor.get());
  threadPool.shutdownNow();
}
 
開發者ID:linkedin,項目名稱:concurrentli,代碼行數:21,代碼來源:AutoResetEventTest.java

示例7: offer

import java.util.concurrent.atomic.AtomicInteger; //導入依賴的package包/類
/**
 * Inserts the specified element at the tail of this queue if it is possible to do so immediately
 * without exceeding the queue's capacity, returning {@code true} upon success and {@code false}
 * if this queue is full. When using a capacity-restricted queue, this method is generally
 * preferable to method {@link BlockingQueue#add add}, which can fail to insert an element only by
 * throwing an exception.
 *
 * @throws NullPointerException if the specified element is null
 */
public boolean offer(E e) {
  if (e == null)
    throw new NullPointerException();
  final AtomicInteger count = this.count;
  if (count.get() >= capacity) // GEMFIRE changed == to >=
    return false;
  int c = -1;
  final ReentrantLock putLock = this.putLock;
  putLock.lock();
  try {
    if (count.get() < capacity) {
      enqueue(e);
      c = count.getAndIncrement();
      if (c + 1 < capacity)
        notFull.signal();
    }
  } finally {
    putLock.unlock();
  }
  if (c == 0)
    signalNotEmpty();
  return c >= 0;
}
 
開發者ID:ampool,項目名稱:monarch,代碼行數:33,代碼來源:ForceableLinkedBlockingQueue.java

示例8: testFutures

import java.util.concurrent.atomic.AtomicInteger; //導入依賴的package包/類
@Test
public void testFutures() {
	final Callable<Integer> callable1 = successCallable(999, 100);
	final Callable<String> callable2 = successCallable("HI", 1000);
	
	ExecutorService es = deferredManager.getExecutorService();
	Future<Integer> future1 = es.submit(callable1);
	Future<String> future2 = es.submit(callable2);
	final AtomicInteger doneCount = new AtomicInteger();
	deferredManager.when(future1, future2).done(new DoneCallback<MultipleResults>() {
		@Override
		public void onDone(MultipleResults result) {
			Assert.assertEquals(2, result.size());
			Assert.assertEquals(999, result.get(0).getResult());
			Assert.assertEquals("HI", result.get(1).getResult());
			doneCount.incrementAndGet();
		}
	});
	
	waitForCompletion();
	Assert.assertEquals(1, doneCount.get());
}
 
開發者ID:tuenti,項目名稱:android-deferred,代碼行數:23,代碼來源:MultiplePromisesTest.java

示例9: testProvider_StaticNumberProvider

import java.util.concurrent.atomic.AtomicInteger; //導入依賴的package包/類
@Test
public void testProvider_StaticNumberProvider() {
    PluggableDefaultValueStrategy strategy = new PluggableDefaultValueStrategy();
    strategy.addProvider(new StaticNumberProvider(42L));

    assertEquals(Long.valueOf(42L), strategy.getDefaultValue(TestUtils.getCM("", "", "", Long.class, false), Long.class));
    assertNull(strategy.getDefaultValue(TestUtils.getCM("", "", "", String.class, false), String.class));
    assertEquals(42L, (long) strategy.getDefaultValue(TestUtils.getCM("", "", "", Long.class, true), Long.class));
    assertEquals(42, (int) strategy.getDefaultValue(TestUtils.getCM("", "", "", Integer.class, true), Integer.class));
    assertEquals(42.0, strategy.getDefaultValue(TestUtils.getCM("", "", "", Double.class, true), Double.class), 0.0);
    assertEquals(42.0f, strategy.getDefaultValue(TestUtils.getCM("", "", "", Float.class, true), Float.class), 0f);
    assertEquals(new BigDecimal(42), strategy.getDefaultValue(TestUtils.getCM("", "", "", BigDecimal.class, true), BigDecimal.class));
    assertEquals((byte) 42, (byte) strategy.getDefaultValue(TestUtils.getCM("", "", "", Byte.class, true), Byte.class));
    assertEquals((short) 42, (short) strategy.getDefaultValue(TestUtils.getCM("", "", "", Short.class, true), Short.class));
    assertEquals(42, strategy.getDefaultValue(TestUtils.getCM("", "", "", AtomicInteger.class, true), AtomicInteger.class).get());
    assertEquals(42L, strategy.getDefaultValue(TestUtils.getCM("", "", "", AtomicLong.class, true), AtomicLong.class).get());

    assertNull(new StaticNumberProvider(BigDecimal.ONE).convertNumber(new BigDecimal(0), String.class));
}
 
開發者ID:btc-ag,項目名稱:redg,代碼行數:20,代碼來源:PluggableDefaultValueStrategyTest.java

示例10: createDefaultThreadPool

import java.util.concurrent.atomic.AtomicInteger; //導入依賴的package包/類
public static ThreadPoolExecutor createDefaultThreadPool() {
    // 控製最多4個keep在pool中
    int corePoolSize = Math.min(4, CPU_CORE);
    return new ThreadPoolExecutor(
            corePoolSize,
            Integer.MAX_VALUE,
            DEFAULT_CACHE_SENCOND, TimeUnit.SECONDS,
            new SynchronousQueue<Runnable>(),
            new ThreadFactory() {
                static final String NAME = "lite-";
                AtomicInteger IDS = new AtomicInteger(1);

                @Override
                public Thread newThread(Runnable r) {
                    return new Thread(r, NAME + IDS.getAndIncrement());
                }
            },
            new ThreadPoolExecutor.DiscardPolicy());
}
 
開發者ID:BaoBaoJianqiang,項目名稱:CustomListView,代碼行數:20,代碼來源:SmartExecutor.java

示例11: testSerializationWithMapMaker_preservesIdentityKeyEquivalence

import java.util.concurrent.atomic.AtomicInteger; //導入依賴的package包/類
public void testSerializationWithMapMaker_preservesIdentityKeyEquivalence() {
  ConcurrentMap<String, AtomicInteger> map =
      new MapMaker().keyEquivalence(Equivalence.identity()).makeMap();

  ConcurrentHashMultiset<String> multiset = ConcurrentHashMultiset.create(map);
  multiset = reserializeAndAssert(multiset);

  String s1 = new String("a");
  String s2 = new String("a");
  assertEquals(s1, s2); // Stating the obvious.
  assertTrue(s1 != s2); // Stating the obvious.

  multiset.add(s1);
  assertTrue(multiset.contains(s1));
  assertFalse(multiset.contains(s2));
  assertEquals(1, multiset.count(s1));
  assertEquals(0, multiset.count(s2));
}
 
開發者ID:paul-hammant,項目名稱:googles-monorepo-demo,代碼行數:19,代碼來源:ConcurrentHashMultisetTest.java

示例12: testPartialSuccess

import java.util.concurrent.atomic.AtomicInteger; //導入依賴的package包/類
@Test
public void testPartialSuccess() throws Exception {
    repeat(2, i -> {
        int attempts = i + 1;

        failures.set(attempts);

        AtomicInteger failoverCalls = new AtomicInteger();

        AggregateResult<String> result = get(sender.get().withFailover(context -> {
            failoverCalls.incrementAndGet();

            return context.retry();
        }).aggregate("test"));

        assertTrue(result.isSuccess());
        assertEquals(channels.size(), result.results().size());

        assertEquals(attempts, failoverCalls.get());
    });
}
 
開發者ID:hekate-io,項目名稱:hekate,代碼行數:22,代碼來源:FailoverAggregateTest.java

示例13: requestBeforeExecuteCreates

import java.util.concurrent.atomic.AtomicInteger; //導入依賴的package包/類
@Test public void requestBeforeExecuteCreates() throws IOException {
  Retrofit retrofit = new Retrofit.Builder()
      .baseUrl(server.url("/"))
      .addConverterFactory(new ToStringConverterFactory())
      .build();
  Service service = retrofit.create(Service.class);

  server.enqueue(new MockResponse());

  final AtomicInteger writeCount = new AtomicInteger();
  Object a = new Object() {
    @Override public String toString() {
      writeCount.incrementAndGet();
      return "Hello";
    }
  };
  Call<String> call = service.postRequestBody(a);

  call.request();
  assertThat(writeCount.get()).isEqualTo(1);

  call.execute();
  assertThat(writeCount.get()).isEqualTo(1);
}
 
開發者ID:weiwenqiang,項目名稱:GitHub,代碼行數:25,代碼來源:CallTest.java

示例14: formatToCharacterIterator

import java.util.concurrent.atomic.AtomicInteger; //導入依賴的package包/類
/**
 * Formats an Object producing an <code>AttributedCharacterIterator</code>.
 * You can use the returned <code>AttributedCharacterIterator</code>
 * to build the resulting String, as well as to determine information
 * about the resulting String.
 * <p>
 * Each attribute key of the AttributedCharacterIterator will be of type
 * <code>NumberFormat.Field</code>, with the attribute value being the
 * same as the attribute key.
 *
 * @exception NullPointerException if obj is null.
 * @exception IllegalArgumentException when the Format cannot format the
 *            given object.
 * @exception        ArithmeticException if rounding is needed with rounding
 *                   mode being set to RoundingMode.UNNECESSARY
 * @param obj The object to format
 * @return AttributedCharacterIterator describing the formatted value.
 * @since 1.4
 */
@Override
public AttributedCharacterIterator formatToCharacterIterator(Object obj) {
    CharacterIteratorFieldDelegate delegate =
                     new CharacterIteratorFieldDelegate();
    StringBuffer sb = new StringBuffer();

    if (obj instanceof Double || obj instanceof Float) {
        format(((Number)obj).doubleValue(), sb, delegate);
    } else if (obj instanceof Long || obj instanceof Integer ||
               obj instanceof Short || obj instanceof Byte ||
               obj instanceof AtomicInteger || obj instanceof AtomicLong) {
        format(((Number)obj).longValue(), sb, delegate);
    } else if (obj instanceof BigDecimal) {
        format((BigDecimal)obj, sb, delegate);
    } else if (obj instanceof BigInteger) {
        format((BigInteger)obj, sb, delegate, false);
    } else if (obj == null) {
        throw new NullPointerException(
            "formatToCharacterIterator must be passed non-null object");
    } else {
        throw new IllegalArgumentException(
            "Cannot format given Object as a Number");
    }
    return delegate.getIterator(sb.toString());
}
 
開發者ID:SunburstApps,項目名稱:OpenJSharp,代碼行數:45,代碼來源:DecimalFormat.java

示例15: test_received_request_twoway_error_reqeustBroken

import java.util.concurrent.atomic.AtomicInteger; //導入依賴的package包/類
@Test
public void test_received_request_twoway_error_reqeustBroken() throws RemotingException{
    final Request request = new Request();
    request.setTwoWay(true);
    request.setData(new BizException());
    request.setBroken(true);
    
    final AtomicInteger count = new AtomicInteger(0);
    final Channel mchannel = new MockedChannel(){
        @Override
        public void send(Object message) throws RemotingException {
            Response res = (Response)message;
            Assert.assertEquals(request.getId(), res.getId());
            Assert.assertEquals(request.getVersion(), res.getVersion());
            Assert.assertEquals(Response.BAD_REQUEST, res.getStatus());
            Assert.assertNull(res.getResult());
            Assert.assertTrue(res.getErrorMessage().contains(BizException.class.getName()));
            count.incrementAndGet();
        }
    };
    HeaderExchangeHandler hexhandler = new HeaderExchangeHandler(new MockedExchangeHandler());
    hexhandler.received(mchannel, request);
    Assert.assertEquals(1, count.get());
}
 
開發者ID:yunhaibin,項目名稱:dubbox-hystrix,代碼行數:25,代碼來源:HeaderExchangeHandlerTest.java


注:本文中的java.util.concurrent.atomic.AtomicInteger類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。