// variable can be assigned once only, read allowed multiple times
final DataflowVariable<Integer> a = new DataflowVariable<Integer>();
// group.task will use thread from pool and uses it to execute value bind
group.task(new Runnable() {
public void run() {
// first thread binding value succeeds, other attempts would fail with IllegalStateException
logMessages.add("Value bound");
a.bind(10);
}