Java多线程问题之同步器CyclicBarrier

开发 后端
关于Oracle迁移到mysql的遗留问题,当在查看数据的时候,发现两个库数据量不一致。最后证实了我的看法,我修改代码时将10个进程简成1个单线程来完成了。所以数据量会少那么多呢。具体原因请看内容

还是上次的oracle迁移到mysql的遗留问题,当我在查看数据的时候,发现两个库数据量不一致。最后证实了我的看法,我修改代码时将10个进程简成1个单线程来完成了。所以数据量会少那么多呢。

原因很简单当时就是这个函数CyclicBarrier,当时不理解具体的意思:

  1. if (sessionParameter.getSourceThreadNum() > 1) {  
  2.                 System.out.println("多线程运行");  
  3.                 CyclicBarrier barrier = new CyclicBarrier(sessionParameter  
  4.                         .getSourceThreadNum() + 2);  
  5.                 for (int i = 0; i <= sessionParameter.getSourceThreadNum(); i++) {  
  6.                     dataSyncThread dataSync = new dataSyncThread(barrier, i,  
  7.                             sDataSource, tDataSource, sessionParameter);  
  8.                     dataSync.start();  
  9.                 }  
  10.                 long start = System.currentTimeMillis();  
  11.                 barrier.await();  
  12.                 barrier.await();  
  13.                 long end = System.currentTimeMillis(); 

在实际应用中,有时候需要多个线程同时工作以完成同一件事情,而且在完成过程中,往往会等待其他线程都完成某一阶段后再执行,等所有线程都到达某一个阶段后再统一执行。 其中,的barrier就是相当于一个阻断,障碍器,CyclicBarrier最重要的属性就是参与者个数,另外最要方法是await()。当所有线程都调用了await()后,就表示这些线程都可以继续执行,否则就会等待。只有达到CyclicBarrier(int number)中number的数量,才能使程序中的10个进程同步进行互不干扰。

原文链接:http://blog.csdn.net/chen861201/article/details/7629933

责任编辑:林师授 来源: chen861201的博客
相关推荐

2020-06-18 10:50:56

Java并发同步器

2011-06-22 13:57:54

Java多线程

2011-06-22 13:47:16

Java多线程

2010-01-21 11:22:35

Linux多线程同步

2010-01-21 11:23:49

Linux多线程同步消息队列

2021-04-12 08:21:48

AQSjavajvm

2021-04-13 14:07:22

JUC解析AQS抽象

2009-03-12 10:52:43

Java线程多线程

2011-04-14 13:27:53

Synchronize多线程

2010-03-15 19:37:00

Java多线程同步

2010-01-21 11:27:30

linux多线程机制线程同步

2009-07-01 17:34:03

Servlet和JSP

2021-04-21 07:53:12

Java限流器管理

2009-07-03 16:53:11

Servlet容器

2015-07-22 09:39:38

IOS多线程同步

2015-07-22 09:51:51

iOS开发线程

2011-08-30 15:44:57

C#

2019-07-31 09:06:35

Java跳槽那些事儿文章

2011-06-13 10:41:17

JAVA

2020-11-16 08:11:32

ReentrantLo
点赞
收藏

51CTO技术栈公众号