Example usage for java.util.concurrent.atomic AtomicInteger AtomicInteger

List of usage examples for java.util.concurrent.atomic AtomicInteger AtomicInteger

Introduction

In this page you can find the example usage for java.util.concurrent.atomic AtomicInteger AtomicInteger.

Prototype

public AtomicInteger() 

Source Link

Document

Creates a new AtomicInteger with initial value 0 .

Usage

From source file:Main.java

public static AtomicInteger newAtomicInteger() {
    AtomicInteger i = new AtomicInteger();
    atomicCounterList.add(i);
    return i;
}

From source file:Main.java

public static ThreadFactory threadFactory(final String alias) {
    return new ThreadFactory() {

        private final AtomicInteger threadCount = new AtomicInteger();

        @Override//from   w w  w .  j a va  2  s . co m
        public Thread newThread(Runnable r) {
            return new Thread(r, "Ehcache [" + alias + "]-" + threadCount.getAndIncrement());
        }
    };
}

From source file:Main.java

public static ThreadFactory createThreadFactory(final String prefix) {
    return new ThreadFactory() {
        private AtomicInteger size = new AtomicInteger();

        public Thread newThread(Runnable r) {
            Thread thread = new Thread(r);
            thread.setName(prefix + size.incrementAndGet());
            if (thread.isDaemon()) {
                thread.setDaemon(false);
            }/*from w  ww  . j  ava  2s.co  m*/
            return thread;
        }
    };
}

From source file:edu.msu.cme.rdp.kmer.KmerFilter.java

public static void main(String[] args) throws Exception {
    final KmerTrie kmerTrie;
    final SeqReader queryReader;
    final SequenceType querySeqType;
    final File queryFile;
    final KmerStartsWriter out;
    final boolean translQuery;
    final int wordSize;
    final int translTable;
    final boolean alignedSeqs;
    final List<String> refLabels = new ArrayList();
    final int maxThreads;

    try {/*  w w w  . jav a 2s .  c o  m*/
        CommandLine cmdLine = new PosixParser().parse(options, args);
        args = cmdLine.getArgs();

        if (args.length < 3) {
            throw new Exception("Unexpected number of arguments");
        }

        if (cmdLine.hasOption("out")) {
            out = new KmerStartsWriter(cmdLine.getOptionValue("out"));
        } else {
            out = new KmerStartsWriter(System.out);
        }

        if (cmdLine.hasOption("aligned")) {
            alignedSeqs = true;
        } else {
            alignedSeqs = false;
        }

        if (cmdLine.hasOption("transl-table")) {
            translTable = Integer.valueOf(cmdLine.getOptionValue("transl-table"));
        } else {
            translTable = 11;
        }

        if (cmdLine.hasOption("threads")) {
            maxThreads = Integer.valueOf(cmdLine.getOptionValue("threads"));
        } else {
            maxThreads = Runtime.getRuntime().availableProcessors();
        }

        queryFile = new File(args[1]);
        wordSize = Integer.valueOf(args[0]);
        SequenceType refSeqType = null;

        querySeqType = SeqUtils.guessSequenceType(queryFile);
        queryReader = new SequenceReader(queryFile);

        if (querySeqType == SequenceType.Protein) {
            throw new Exception("Expected nucl query sequences");
        }

        refSeqType = SeqUtils
                .guessSequenceType(new File(args[2].contains("=") ? args[2].split("=")[1] : args[2]));

        translQuery = refSeqType == SequenceType.Protein;

        if (translQuery && wordSize % 3 != 0) {
            throw new Exception("Word size must be a multiple of 3 for nucl ref seqs");
        }

        int trieWordSize;
        if (translQuery) {
            trieWordSize = wordSize / 3;
        } else {
            trieWordSize = wordSize;
        }
        kmerTrie = new KmerTrie(trieWordSize, translQuery);

        for (int index = 2; index < args.length; index++) {
            String refName;
            String refFileName = args[index];
            if (refFileName.contains("=")) {
                String[] lexemes = refFileName.split("=");
                refName = lexemes[0];
                refFileName = lexemes[1];
            } else {
                String tmpName = new File(refFileName).getName();
                if (tmpName.contains(".")) {
                    refName = tmpName.substring(0, tmpName.lastIndexOf("."));
                } else {
                    refName = tmpName;
                }
            }

            File refFile = new File(refFileName);

            if (refSeqType != SeqUtils.guessSequenceType(refFile)) {
                throw new Exception(
                        "Reference file " + refFile + " contains " + SeqUtils.guessFileFormat(refFile)
                                + " sequences but expected " + refSeqType + " sequences");
            }

            SequenceReader seqReader = new SequenceReader(refFile);
            Sequence seq;

            while ((seq = seqReader.readNextSequence()) != null) {
                if (seq.getSeqName().startsWith("#")) {
                    continue;
                }
                if (alignedSeqs) {
                    kmerTrie.addModelSequence(seq, refLabels.size());
                } else {
                    kmerTrie.addSequence(seq, refLabels.size());
                }
            }
            seqReader.close();

            refLabels.add(refName);
        }

    } catch (Exception e) {
        new HelpFormatter().printHelp("KmerSearch <word_size> <query_file> [name=]<ref_file> ...", options);
        System.err.println(e.getMessage());
        e.printStackTrace();
        System.exit(1);
        throw new RuntimeException("Stupid jvm"); //While this will never get thrown it is required to make sure javac doesn't get confused about uninitialized variables
    }

    long startTime = System.currentTimeMillis();
    long seqCount = 0;
    final int maxTasks = 25000;

    /*
     * if (args.length == 4) { maxThreads = Integer.valueOf(args[3]); } else {
     */

    //}

    System.err.println("Starting kmer mapping at " + new Date());
    System.err.println("*  Number of threads:       " + maxThreads);
    System.err.println("*  References:              " + refLabels);
    System.err.println("*  Reads file:              " + queryFile);
    System.err.println("*  Kmer length:             " + kmerTrie.getWordSize());

    final AtomicInteger processed = new AtomicInteger();
    final AtomicInteger outstandingTasks = new AtomicInteger();

    ExecutorService service = Executors.newFixedThreadPool(maxThreads);

    Sequence querySeq;

    while ((querySeq = queryReader.readNextSequence()) != null) {
        seqCount++;

        String seqString = querySeq.getSeqString();

        if (seqString.length() < 3) {
            System.err.println("Sequence " + querySeq.getSeqName() + "'s length is less than 3");
            continue;
        }

        final Sequence threadSeq = querySeq;

        Runnable r = new Runnable() {

            public void run() {
                try {
                    processSeq(threadSeq, refLabels, kmerTrie, out, wordSize, translQuery, translTable, false);
                    processSeq(threadSeq, refLabels, kmerTrie, out, wordSize, translQuery, translTable, true);
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }

                processed.incrementAndGet();
                outstandingTasks.decrementAndGet();
            }
        };

        outstandingTasks.incrementAndGet();
        service.submit(r);

        while (outstandingTasks.get() >= maxTasks)
            ;

        if ((processed.get() + 1) % 1000000 == 0) {
            System.err.println("Processed " + processed + " sequences in "
                    + (System.currentTimeMillis() - startTime) + " ms");
        }
    }

    service.shutdown();
    service.awaitTermination(1, TimeUnit.DAYS);

    System.err.println("Finished Processed " + processed + " sequences in "
            + (System.currentTimeMillis() - startTime) + " ms");

    out.close();
}

From source file:org.zenoss.zep.dao.impl.DaoUtilsTest.java

@Test
public void testDeadlockRetry() throws Exception {
    final AtomicInteger i = new AtomicInteger();
    final int returnVal = new Random().nextInt();
    int result = DaoUtils.deadlockRetry(new Callable<Integer>() {
        @Override/* w w  w  .j a va2  s  .c  om*/
        public Integer call() throws Exception {
            if (i.incrementAndGet() < 5) {
                throw new DeadlockLoserDataAccessException("My fake exception", null);
            }
            return returnVal;
        }
    });
    assertEquals(i.get(), 5);
    assertEquals(result, returnVal);
}

From source file:com.hubrick.raml.mojo.util.JavaNames.java

private static <T> Function<T, Indexed<T>> indexed() {
    final AtomicInteger index = new AtomicInteger();
    return (value) -> new BasicIndexed<>(index.getAndIncrement(), value);
}

From source file:com.netflix.curator.framework.imps.TestCompression.java

@Test
public void testCompressionProvider() throws Exception {
    final byte[] data = "here's a string".getBytes();

    final AtomicInteger compressCounter = new AtomicInteger();
    final AtomicInteger decompressCounter = new AtomicInteger();
    CompressionProvider compressionProvider = new CompressionProvider() {
        @Override/*from ww w  .java 2 s.co m*/
        public byte[] compress(String path, byte[] data) throws Exception {
            compressCounter.incrementAndGet();

            byte[] bytes = new byte[data.length * 2];
            System.arraycopy(data, 0, bytes, 0, data.length);
            System.arraycopy(data, 0, bytes, data.length, data.length);
            return bytes;
        }

        @Override
        public byte[] decompress(String path, byte[] compressedData) throws Exception {
            decompressCounter.incrementAndGet();

            byte[] bytes = new byte[compressedData.length / 2];
            System.arraycopy(compressedData, 0, bytes, 0, bytes.length);
            return bytes;
        }
    };

    CuratorFramework client = CuratorFrameworkFactory.builder().compressionProvider(compressionProvider)
            .connectString(server.getConnectString()).retryPolicy(new RetryOneTime(1)).build();
    try {
        client.start();

        client.create().compressed().creatingParentsIfNeeded().forPath("/a/b/c", data);

        Assert.assertNotEquals(data, client.getData().forPath("/a/b/c"));
        Assert.assertEquals(data.length, client.getData().decompressed().forPath("/a/b/c").length);
    } finally {
        IOUtils.closeQuietly(client);
    }

    Assert.assertEquals(compressCounter.get(), 1);
    Assert.assertEquals(decompressCounter.get(), 1);
}

From source file:com.raphfrk.craftproxyclient.gui.GUIManager.java

public static JSONObject getPreviousLoginDetails() {
    JSONObject loginInfo = AuthManager.refreshAccessToken();
    if (loginInfo == null) {
        return null;
    }/*from  w w  w.j  a  v a  2s.com*/
    final AtomicInteger option = new AtomicInteger();
    Runnable r = new Runnable() {
        public void run() {
            option.set(JOptionPane.showConfirmDialog(CraftProxyClient.getGUI(),
                    "Login as " + AuthManager.getUsername() + "?", "Login", JOptionPane.YES_NO_OPTION));
        }
    };

    if (SwingUtilities.isEventDispatchThread()) {
        r.run();
    } else {
        try {
            SwingUtilities.invokeAndWait(r);
        } catch (InvocationTargetException | InterruptedException e) {
            return null;
        }
    }
    if (option.get() == 0) {
        return loginInfo;
    } else {
        return null;
    }
}

From source file:org.zenoss.zep.dao.impl.DaoUtilsTest.java

@Test
public void testDeadlockRetryAllFailed() throws Exception {
    final AtomicInteger i = new AtomicInteger();
    try {//from   w  w w .j a  v  a2  s. c om
        DaoUtils.deadlockRetry(new Callable<Integer>() {
            @Override
            public Integer call() throws Exception {
                throw new DeadlockLoserDataAccessException(String.valueOf(i.incrementAndGet()), null);
            }
        });
        fail("Should have thrown an exception after 5 retries");
    } catch (DeadlockLoserDataAccessException e) {
        assertEquals("5", e.getMessage());
    }
}

From source file:jcuda.jcublas.kernel.TestMultipleThreads.java

@Test
public void testMultipleThreads() throws InterruptedException {
    int numThreads = 10;
    final INDArray array = Nd4j.rand(3000, 3000);
    final INDArray expected = array.dup().mmul(array).mmul(array).div(array).div(array);
    final AtomicInteger correct = new AtomicInteger();
    final CountDownLatch latch = new CountDownLatch(numThreads);

    ExecutorService executors = Executors.newCachedThreadPool();

    for (int x = 0; x < numThreads; x++) {
        executors.execute(new Runnable() {
            @Override//w w  w.  j av  a 2 s . co m
            public void run() {
                try {
                    int total = 10;
                    int right = 0;
                    for (int x = 0; x < total; x++) {
                        StopWatch watch = new StopWatch();
                        watch.start();
                        INDArray actual = array.dup().mmul(array).mmul(array).div(array).div(array);
                        watch.stop();
                        System.out.println("MMUL took " + watch.getTime());
                        if (expected.equals(actual))
                            right++;
                    }

                    if (total == right)
                        correct.incrementAndGet();
                } finally {
                    latch.countDown();
                }

            }
        });
    }

    latch.await();

    assertEquals(numThreads, correct.get());

}