标签:violate关键字 开发 项目 java
最近在项目中线程开发遇到一个问题,需求是主线程执行完后执行子线程,实际测试的时候主线程走完,并没有执行子线程。代码如下:
ThreadErrorCMeter threadErrorCMeter = new ThreadErrorCMeter(sqlDao, sessionFactory, pageNo, pageSize);
Thread errorCMeterThread = new Thread(threadErrorCMeter);
errorCMeterThread.start();
while (true) {
if (threadErrorCMeter.isFlag()) {
errorCMeterThread.stop();// 关闭主线程
ThreadCMeter threadCMeter = new ThreadCMeter(sqlDao, sessionFactory, pageNo, pageSize);
Thread cMeterThread = new Thread(threadCMeter);
cMeterThread.start();
ThreadCCons threadCCons = new ThreadCCons(sqlDao, sessionFactory, pageNo, pageSize);
Thread cConsThread = new Thread(threadCCons);
cConsThread.start();
ThreadErrorDLcEquip threadErrorDLcEquip = new ThreadErrorDLcEquip(sqlDao, sessionFactory, pageNo, pageSize);
Thread errorDLcEquipThread = new Thread(threadErrorDLcEquip);
errorDLcEquipThread.start();
后来经过同事查询资料,给flag加上violate关键字修饰后,线程之间数据得到同步,线程正常运行。具体原因不是太理解,望大神给予详细解答。
标签:violate关键字 开发 项目 java
原文地址:http://qihan.blog.51cto.com/4246095/1661622