Java - 布尔值无法正确更新

时间:2017-10-29 11:53:41

标签: java

为什么我的布尔值没有正确更新?

# open the file
file1 <-read.table(file.choose(), header=T)
# View the content of the file
View(file1)

# assign the date
as.character(file1$Date) -> file1$date
time <- as.Date( file1$date, "%d/%m/%Y")

# seperate the day, month, year
file1[,"Year"] <- format(time,  format = "%Y")
file1[,"Month"] <- format(time, format = "%m")
file1[,"Day"] <- format(time, format = "%d")

# to see the updates file
View(file1)

# avearaging the dayily mean then same as month wise 
aggregate(file1[, 2:4], list(file$Day), mean, na.rm=T)

当我从Stop类运行stop()时,我得到了“Exception!”在输出中。 为什么?我正在改变现成的布尔值,所以这里发生了什么?

2 个答案:

答案 0 :(得分:3)

您没有任何同步,并且ready不易变,因此在一个线程中对其进行的更改甚至不能保证永远可见其他线程。< / p>

尝试制作volatile

有关同步的一些文档:https://docs.oracle.com/javase/specs/jls/se7/html/jls-17.html#jls-17.1

答案 1 :(得分:0)

您没有提供完整的代码,因此很难理解发生了什么。

我建议您在“Declarations.ready = false”之后调试代码或添加打印输出。了解它是否被执行。

此外,还不清楚它是在单个线程上运行,还是在多个线程中并行运行。