- Gradle
implementation 'com.github.Justson:dispatch-queue:v1.0.5'- 线程可以配对交换元素在同步点
- 线程空闲后执行task
- 阻塞执行
- 线程之间交叉执行
final StringBuffer output = new StringBuffer(); AsyncTask.execute(() -> { output.append(1).append(", "); GlobalQueue.getMainQueue().postRunnableBlocking(() -> { // do you work , in the main-Thread output.append(2).append(", "); }); output.append(3).append(", "); // invoke in the main-Thread and return a string data String message = GlobalQueue.getMainQueue().call(() -> { output.append(4).append(", "); return "hello world"; }); output.append(5).append(" data ").append(message); System.out.println(output.toString()); // output the order "1 2 3 4 5" }); output the order :1, 2, 3, 4, 5 DispatchThread messageDispatch = DispatchThread.create("message"); messageDispatch.postRunnable(() -> { // do you work , work in message thread }); System.out.println("1"); messageDispatch.postRunnableScissors(() -> { System.out.println("2"); }); System.out.println("3"); // output 1 2 3 // from message thread get a number, it will blocking until working finish. int i = messageDispatch.call(() -> 1); messageDispatch.postRunnableInIdleRunning(() -> { // do your work , when the message thread idle will callback this runable });