Java Examples for net.jcip.annotations.ThreadSafe
The following java examples will help you to understand the usage of net.jcip.annotations.ThreadSafe. These source code samples are taken from different open source projects.
Example 1
| Project: libreveris-master File: RunsTableFactory.java View source code |
//--------------//
// isThreadSafe //
//--------------//
/**
* The concurrency aspects of the adapter depends on the
* underlying PixelFilter.
*
* @return true if safe, false otherwise
*/
@Override
public boolean isThreadSafe() {
Class<?> classe = source.getClass();
// Check for @ThreadSafe annotation
ThreadSafe safe = classe.getAnnotation(ThreadSafe.class);
if (safe != null) {
return true;
}
// Check for @NonThreadSafe annotation
NotThreadSafe notSafe = classe.getAnnotation(NotThreadSafe.class);
if (notSafe != null) {
return false;
}
// No annotation: it's safer to assume no thread safety
return false;
}Example 2
| Project: s4-piper-master File: ProcessingElement.java View source code |
/* This method is called by App just before the application starts. */
void initPEPrototypeInternal() {
/* Eagerly create singleton PE. */
if (isSingleton) {
try {
peInstances.get(SINGLETON);
logger.trace("Created singleton [{}].", getInstanceForKey(SINGLETON));
} catch (ExecutionException e) {
logger.error("Problem when trying to create a PE instance.", e);
}
}
/* Start timer. */
if (timer != null) {
timer.schedule(new OnTimeTask(), 0, timerIntervalInMilliseconds);
logger.info("Started timer for PE [{}] with ID [{}].", this.getClass().getName(), id);
}
/* Check if this PE is annotated as thread safe. */
if (getClass().isAnnotationPresent(ThreadSafe.class) == true) {
// TODO: this doesn't seem to be working. isannotationpresent always returns false.
isThreadSafe = true;
logger.trace("Annotated with @ThreadSafe");
}
}Example 3
| Project: incubator-s4-master File: ProcessingElement.java View source code |
/* This method is called by App just before the application starts. */
protected void initPEPrototypeInternal() {
/* Eagerly create singleton PE. */
if (isSingleton) {
try {
peInstances.get(SINGLETON);
logger.trace("Created singleton [{}].", getInstanceForKey(SINGLETON));
} catch (ExecutionException e) {
logger.error("Problem when trying to create a PE instance.", e);
}
}
/* Start timer. */
if (triggerTimer != null) {
triggerTimer.scheduleAtFixedRate(new OnTimeTask(), 0, timerIntervalInMilliseconds, TimeUnit.MILLISECONDS);
logger.debug("Started timer for PE prototype [{}], ID [{}] with interval [{}].", new String[] { this.getClass().getName(), id, String.valueOf(timerIntervalInMilliseconds) });
}
if (checkpointingConfig.mode == CheckpointingMode.TIME) {
ThreadFactory threadFactory = new ThreadFactoryBuilder().setDaemon(true).setUncaughtExceptionHandler(new UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread t, Throwable e) {
logger.error("Expection from checkpointing thread", e);
}
}).setNameFormat("Checkpointing-trigger-" + getClass().getSimpleName()).build();
checkpointingTimer = Executors.newSingleThreadScheduledExecutor(threadFactory);
checkpointingTimer.scheduleAtFixedRate(new CheckpointingTask(this), checkpointingConfig.frequency, checkpointingConfig.frequency, checkpointingConfig.timeUnit);
logger.debug("Started checkpointing timer for PE prototype [{}], ID [{}] with interval [{}] [{}].", new String[] { this.getClass().getName(), id, String.valueOf(checkpointingConfig.frequency), String.valueOf(checkpointingConfig.timeUnit.toString()) });
}
/* Check if this PE is annotated as thread safe. */
if (getClass().isAnnotationPresent(ThreadSafe.class) == true) {
// TODO: this doesn't seem to be working. isannotationpresent always returns false.
isThreadSafe = true;
logger.trace("Annotated with @ThreadSafe");
}
}