Java AtomicReference runInThread(final Runnable runnable)

Here you can find the source of runInThread(final Runnable runnable)

Description

run In Thread

License

Open Source License

Declaration

public static void runInThread(final Runnable runnable) throws Throwable 

Method Source Code

//package com.java2s;
/*******************************************************************************
 * Copyright (c) 2014 EclipseSource and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors://  w  ww.ja  v  a  2 s . com
 *    EclipseSource - initial API and implementation
 ******************************************************************************/

import java.util.concurrent.atomic.AtomicReference;

public class Main {
    public static void runInThread(final Runnable runnable) throws Throwable {
        final AtomicReference<Throwable> exception = new AtomicReference<Throwable>();
        Runnable exceptionGuard = new Runnable() {
            public void run() {
                try {
                    runnable.run();
                } catch (Throwable throwable) {
                    exception.set(throwable);
                }
            }
        };
        Thread thread = new Thread(exceptionGuard);
        thread.setDaemon(true);
        thread.start();
        thread.join();
        if (exception.get() != null) {
            throw exception.get();
        }
    }
}

Related

  1. getSplineCoefficients(int n, float x)
  2. isTerminated(AtomicReference field)
  3. length(AtomicReferenceArray buf)
  4. mergeProperties(Properties... properties)
  5. pack(int count, Object[] array, AtomicReference edit, int idx)
  6. runInThread(final Runnable runnable)