ZThread { public static void start(IDetachedRunnable runnable, Object... args) { Thread shim = new ShimThread(runnable, args); shim.start(); }  static void start(IDetachedRunnable runnable, Object... args); static Socket fork(ZContext ctx, IAttachedRunnable runnable, Object... args);  }
@Test public void testDetached() { ZThread.IDetachedRunnable detached = new ZThread.IDetachedRunnable() { @Override public void run(Object[] args) { ZContext ctx = new ZContext(); assert (ctx != null); Socket push = ctx.createSocket(ZMQ.PUSH); assert (push != null); ctx.destroy(); } }; ZThread.start(detached); }