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

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

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

ForkJoinPool.initWorkers介绍

[英]Performs secondary initialization, called when plock is zero. Creates workQueue array and sets plock to a valid value. The lock body must be exception-free (so no try/finally) so we optimistically allocate new array outside the lock and throw away if (very rarely) not needed. (A similar tactic is used in fullExternalPush.) Because the plock seq value can eventually wrap around zero, this method harmlessly fails to reinitialize if workQueues exists, while still advancing plock. Additionally tries to create the first worker.
[中]执行辅助初始化,当plock为零时调用。创建工作队列数组并将plock设置为有效值。锁体必须是无异常的(因此无需尝试/最终),因此我们乐观地在锁外分配新阵列,如果(很少)不需要,则丢弃。(在fullExternalPush中也使用了类似的策略。)由于plock seq值最终可能为零,因此如果存在工作队列,该方法将不会重新初始化,同时仍会推进plock。另外,尝试创建第一个工作进程。

代码示例

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

else if (ps == 0 || (ws = workQueues) == null ||
     (m = ws.length - 1) < 0)
  initWorkers();
else if ((q = ws[k = r & m & SQMASK]) != null) {
  if (q.qlock == 0 && U.compareAndSwapInt(q, QLOCK, 0, 1)) {

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

else if (ps == 0 || (ws = workQueues) == null ||
     (m = ws.length - 1) < 0)
  initWorkers();
else if ((q = ws[k = r & m & SQMASK]) != null) {
  if (q.qlock == 0 && U.compareAndSwapInt(q, QLOCK, 0, 1)) {

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

else if (ps == 0 || (ws = workQueues) == null ||
     (m = ws.length - 1) < 0)
  initWorkers();
else if ((q = ws[k = r & m & SQMASK]) != null) {
  if (q.qlock == 0 && U.compareAndSwapInt(q, QLOCK, 0, 1)) {

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

else if (ps == 0 || (ws = workQueues) == null ||
     (m = ws.length - 1) < 0)
  initWorkers();
else if ((q = ws[k = r & m & SQMASK]) != null) {
  if (q.qlock == 0 && U.compareAndSwapInt(q, QLOCK, 0, 1)) {

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

else if (ps == 0 || (ws = workQueues) == null ||
     (m = ws.length - 1) < 0)
  initWorkers();
else if ((q = ws[k = r & m & SQMASK]) != null) {
  if (q.qlock == 0 && U.compareAndSwapInt(q, QLOCK, 0, 1)) {

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

else if (ps == 0 || (ws = workQueues) == null ||
     (m = ws.length - 1) < 0)
  initWorkers();
else if ((q = ws[k = r & m & SQMASK]) != null) {
  if (q.qlock == 0 && U.compareAndSwapInt(q, QLOCK, 0, 1)) {

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

else if (ps == 0 || (ws = workQueues) == null ||
     (m = ws.length - 1) < 0)
  initWorkers();
else if ((q = ws[k = r & m & SQMASK]) != null) {
  if (q.qlock == 0 && U.compareAndSwapInt(q, QLOCK, 0, 1)) {

相关文章

微信公众号

最新文章

更多

ForkJoinPool类方法