为什么我的布尔值没有正确更新?
# 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!”在输出中。 为什么?我正在改变现成的布尔值,所以这里发生了什么?
答案 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”之后调试代码或添加打印输出。了解它是否被执行。
此外,还不清楚它是在单个线程上运行,还是在多个线程中并行运行。