java.util.concurrent.ForkJoinPool.helpComplete()方法的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(8.0k)|赞(0)|评价(0)|浏览(149)

本文整理了Java中java.util.concurrent.ForkJoinPool.helpComplete()方法的一些代码示例,展示了ForkJoinPool.helpComplete()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ForkJoinPool.helpComplete()方法的具体详情如下:
包路径:java.util.concurrent.ForkJoinPool
类名称:ForkJoinPool
方法名:helpComplete

ForkJoinPool.helpComplete介绍

[英]Analog of tryHelpStealer for CountedCompleters. Tries to steal and run tasks within the target's computation.
[中]用于计数完成器的tryHelpStealer模拟。尝试在目标计算中窃取并运行任务。

代码示例

代码示例来源:origin: robovm/robovm

  1. helpSignal(root, q.poolIndex);
  2. if (root.status >= 0)
  3. helpComplete(root, SHARED_QUEUE);
  4. break;

代码示例来源:origin: robovm/robovm

  1. if ((s = task.status) >= 0 &&
  2. (task instanceof CountedCompleter))
  3. s = helpComplete(task, LIFO_QUEUE);

代码示例来源:origin: robovm/robovm

  1. /**
  2. * Stripped-down variant of awaitJoin used by timed joins. Tries
  3. * to help join only while there is continuous progress. (Caller
  4. * will then enter a timed wait.)
  5. *
  6. * @param joiner the joining worker
  7. * @param task the task
  8. */
  9. final void helpJoinOnce(WorkQueue joiner, ForkJoinTask<?> task) {
  10. int s;
  11. if (joiner != null && task != null && (s = task.status) >= 0) {
  12. ForkJoinTask<?> prevJoin = joiner.currentJoin;
  13. joiner.currentJoin = task;
  14. do {} while ((s = task.status) >= 0 && !joiner.isEmpty() &&
  15. joiner.tryRemoveAndExec(task));
  16. if (s >= 0 && (s = task.status) >= 0) {
  17. helpSignal(task, joiner.poolIndex);
  18. if ((s = task.status) >= 0 &&
  19. (task instanceof CountedCompleter))
  20. s = helpComplete(task, LIFO_QUEUE);
  21. }
  22. if (s >= 0 && joiner.isEmpty()) {
  23. do {} while (task.status >= 0 &&
  24. tryHelpStealer(joiner, task) > 0);
  25. }
  26. joiner.currentJoin = prevJoin;
  27. }
  28. }

代码示例来源:origin: MobiVM/robovm

  1. helpSignal(root, q.poolIndex);
  2. if (root.status >= 0)
  3. helpComplete(root, SHARED_QUEUE);
  4. break;

代码示例来源:origin: ibinti/bugvm

  1. helpSignal(root, q.poolIndex);
  2. if (root.status >= 0)
  3. helpComplete(root, SHARED_QUEUE);
  4. break;

代码示例来源:origin: com.mobidevelop.robovm/robovm-rt

  1. helpSignal(root, q.poolIndex);
  2. if (root.status >= 0)
  3. helpComplete(root, SHARED_QUEUE);
  4. break;

代码示例来源:origin: com.gluonhq/robovm-rt

  1. helpSignal(root, q.poolIndex);
  2. if (root.status >= 0)
  3. helpComplete(root, SHARED_QUEUE);
  4. break;

代码示例来源:origin: com.bugvm/bugvm-rt

  1. helpSignal(root, q.poolIndex);
  2. if (root.status >= 0)
  3. helpComplete(root, SHARED_QUEUE);
  4. break;

代码示例来源:origin: com.mobidevelop.robovm/robovm-rt

  1. if ((s = task.status) >= 0 &&
  2. (task instanceof CountedCompleter))
  3. s = helpComplete(task, LIFO_QUEUE);

代码示例来源:origin: MobiVM/robovm

  1. if ((s = task.status) >= 0 &&
  2. (task instanceof CountedCompleter))
  3. s = helpComplete(task, LIFO_QUEUE);

代码示例来源:origin: com.bugvm/bugvm-rt

  1. if ((s = task.status) >= 0 &&
  2. (task instanceof CountedCompleter))
  3. s = helpComplete(task, LIFO_QUEUE);

代码示例来源:origin: ibinti/bugvm

  1. if ((s = task.status) >= 0 &&
  2. (task instanceof CountedCompleter))
  3. s = helpComplete(task, LIFO_QUEUE);

代码示例来源:origin: FlexoVM/flexovm

  1. if ((s = task.status) >= 0 &&
  2. (task instanceof CountedCompleter))
  3. s = helpComplete(task, LIFO_QUEUE);

代码示例来源:origin: com.gluonhq/robovm-rt

  1. if ((s = task.status) >= 0 &&
  2. (task instanceof CountedCompleter))
  3. s = helpComplete(task, LIFO_QUEUE);

代码示例来源:origin: MobiVM/robovm

  1. /**
  2. * Stripped-down variant of awaitJoin used by timed joins. Tries
  3. * to help join only while there is continuous progress. (Caller
  4. * will then enter a timed wait.)
  5. *
  6. * @param joiner the joining worker
  7. * @param task the task
  8. */
  9. final void helpJoinOnce(WorkQueue joiner, ForkJoinTask<?> task) {
  10. int s;
  11. if (joiner != null && task != null && (s = task.status) >= 0) {
  12. ForkJoinTask<?> prevJoin = joiner.currentJoin;
  13. joiner.currentJoin = task;
  14. do {} while ((s = task.status) >= 0 && !joiner.isEmpty() &&
  15. joiner.tryRemoveAndExec(task));
  16. if (s >= 0 && (s = task.status) >= 0) {
  17. helpSignal(task, joiner.poolIndex);
  18. if ((s = task.status) >= 0 &&
  19. (task instanceof CountedCompleter))
  20. s = helpComplete(task, LIFO_QUEUE);
  21. }
  22. if (s >= 0 && joiner.isEmpty()) {
  23. do {} while (task.status >= 0 &&
  24. tryHelpStealer(joiner, task) > 0);
  25. }
  26. joiner.currentJoin = prevJoin;
  27. }
  28. }

代码示例来源:origin: ibinti/bugvm

  1. /**
  2. * Stripped-down variant of awaitJoin used by timed joins. Tries
  3. * to help join only while there is continuous progress. (Caller
  4. * will then enter a timed wait.)
  5. *
  6. * @param joiner the joining worker
  7. * @param task the task
  8. */
  9. final void helpJoinOnce(WorkQueue joiner, ForkJoinTask<?> task) {
  10. int s;
  11. if (joiner != null && task != null && (s = task.status) >= 0) {
  12. ForkJoinTask<?> prevJoin = joiner.currentJoin;
  13. joiner.currentJoin = task;
  14. do {} while ((s = task.status) >= 0 && !joiner.isEmpty() &&
  15. joiner.tryRemoveAndExec(task));
  16. if (s >= 0 && (s = task.status) >= 0) {
  17. helpSignal(task, joiner.poolIndex);
  18. if ((s = task.status) >= 0 &&
  19. (task instanceof CountedCompleter))
  20. s = helpComplete(task, LIFO_QUEUE);
  21. }
  22. if (s >= 0 && joiner.isEmpty()) {
  23. do {} while (task.status >= 0 &&
  24. tryHelpStealer(joiner, task) > 0);
  25. }
  26. joiner.currentJoin = prevJoin;
  27. }
  28. }

代码示例来源:origin: com.gluonhq/robovm-rt

  1. /**
  2. * Stripped-down variant of awaitJoin used by timed joins. Tries
  3. * to help join only while there is continuous progress. (Caller
  4. * will then enter a timed wait.)
  5. *
  6. * @param joiner the joining worker
  7. * @param task the task
  8. */
  9. final void helpJoinOnce(WorkQueue joiner, ForkJoinTask<?> task) {
  10. int s;
  11. if (joiner != null && task != null && (s = task.status) >= 0) {
  12. ForkJoinTask<?> prevJoin = joiner.currentJoin;
  13. joiner.currentJoin = task;
  14. do {} while ((s = task.status) >= 0 && !joiner.isEmpty() &&
  15. joiner.tryRemoveAndExec(task));
  16. if (s >= 0 && (s = task.status) >= 0) {
  17. helpSignal(task, joiner.poolIndex);
  18. if ((s = task.status) >= 0 &&
  19. (task instanceof CountedCompleter))
  20. s = helpComplete(task, LIFO_QUEUE);
  21. }
  22. if (s >= 0 && joiner.isEmpty()) {
  23. do {} while (task.status >= 0 &&
  24. tryHelpStealer(joiner, task) > 0);
  25. }
  26. joiner.currentJoin = prevJoin;
  27. }
  28. }

代码示例来源:origin: com.bugvm/bugvm-rt

  1. /**
  2. * Stripped-down variant of awaitJoin used by timed joins. Tries
  3. * to help join only while there is continuous progress. (Caller
  4. * will then enter a timed wait.)
  5. *
  6. * @param joiner the joining worker
  7. * @param task the task
  8. */
  9. final void helpJoinOnce(WorkQueue joiner, ForkJoinTask<?> task) {
  10. int s;
  11. if (joiner != null && task != null && (s = task.status) >= 0) {
  12. ForkJoinTask<?> prevJoin = joiner.currentJoin;
  13. joiner.currentJoin = task;
  14. do {} while ((s = task.status) >= 0 && !joiner.isEmpty() &&
  15. joiner.tryRemoveAndExec(task));
  16. if (s >= 0 && (s = task.status) >= 0) {
  17. helpSignal(task, joiner.poolIndex);
  18. if ((s = task.status) >= 0 &&
  19. (task instanceof CountedCompleter))
  20. s = helpComplete(task, LIFO_QUEUE);
  21. }
  22. if (s >= 0 && joiner.isEmpty()) {
  23. do {} while (task.status >= 0 &&
  24. tryHelpStealer(joiner, task) > 0);
  25. }
  26. joiner.currentJoin = prevJoin;
  27. }
  28. }

代码示例来源:origin: com.mobidevelop.robovm/robovm-rt

  1. /**
  2. * Stripped-down variant of awaitJoin used by timed joins. Tries
  3. * to help join only while there is continuous progress. (Caller
  4. * will then enter a timed wait.)
  5. *
  6. * @param joiner the joining worker
  7. * @param task the task
  8. */
  9. final void helpJoinOnce(WorkQueue joiner, ForkJoinTask<?> task) {
  10. int s;
  11. if (joiner != null && task != null && (s = task.status) >= 0) {
  12. ForkJoinTask<?> prevJoin = joiner.currentJoin;
  13. joiner.currentJoin = task;
  14. do {} while ((s = task.status) >= 0 && !joiner.isEmpty() &&
  15. joiner.tryRemoveAndExec(task));
  16. if (s >= 0 && (s = task.status) >= 0) {
  17. helpSignal(task, joiner.poolIndex);
  18. if ((s = task.status) >= 0 &&
  19. (task instanceof CountedCompleter))
  20. s = helpComplete(task, LIFO_QUEUE);
  21. }
  22. if (s >= 0 && joiner.isEmpty()) {
  23. do {} while (task.status >= 0 &&
  24. tryHelpStealer(joiner, task) > 0);
  25. }
  26. joiner.currentJoin = prevJoin;
  27. }
  28. }

代码示例来源:origin: FlexoVM/flexovm

  1. /**
  2. * Stripped-down variant of awaitJoin used by timed joins. Tries
  3. * to help join only while there is continuous progress. (Caller
  4. * will then enter a timed wait.)
  5. *
  6. * @param joiner the joining worker
  7. * @param task the task
  8. */
  9. final void helpJoinOnce(WorkQueue joiner, ForkJoinTask<?> task) {
  10. int s;
  11. if (joiner != null && task != null && (s = task.status) >= 0) {
  12. ForkJoinTask<?> prevJoin = joiner.currentJoin;
  13. joiner.currentJoin = task;
  14. do {} while ((s = task.status) >= 0 && !joiner.isEmpty() &&
  15. joiner.tryRemoveAndExec(task));
  16. if (s >= 0 && (s = task.status) >= 0) {
  17. helpSignal(task, joiner.poolIndex);
  18. if ((s = task.status) >= 0 &&
  19. (task instanceof CountedCompleter))
  20. s = helpComplete(task, LIFO_QUEUE);
  21. }
  22. if (s >= 0 && joiner.isEmpty()) {
  23. do {} while (task.status >= 0 &&
  24. tryHelpStealer(joiner, task) > 0);
  25. }
  26. joiner.currentJoin = prevJoin;
  27. }
  28. }

相关文章

ForkJoinPool类方法