如何 return 来自无限循环的值?
How to return a value from Infinite Loop?
我有一个疑问,这对很多人来说可能是微不足道的。
我无法理解如何从无限 运行 循环中 return 一个值?(如果可能的话)
我浏览了互联网上的各种资源,他们都建议使用 MultiThreading。
但遗憾的是,我无法理解线程在这种情况下如何提供帮助。
这是我希望实现的模拟功能:-
void processReturnedValue(){
for(;;){
String currentTime = retrieveCurrentTime();
doSomethingWithReturenedValue(currentTime);
delay(15000); // function to incur delay for 15 Seconds
}
}
String retrieveCurrentTime(){
for(;;){
return currentDateTime.getDayOfYear()+ "_" + currentDateTime.getHour() + "_" + currentDateTime.getMinute() + "_" + currentDateTime.getSecond();
delay(15000); // function to incur delay for 15 Seconds
}
}
如果有人能解答我的疑问,我将不胜感激。
如果可能,请提供一个关于我的小的工作模拟示例。
谢谢期待中的你
不返回,而是将值分配给共享变量:
private final AtomicReference<String> currentTime = new AtomicReference<>();
// Thread 1:
void processReturnedValue() {
for(;;) {
doSomethingWithReturenedValue(currentTime.get());
delay(15000); // function to incur delay for 15 Seconds
}
}
// Thread 2:
String retrieveCurrentTime() {
for(;;) {
currentTime.set(currentDateTime.getDayOfYear()+ "_" + currentDateTime.getHour() + "_" + currentDateTime.getMinute() + "_" + currentDateTime.getSecond());
delay(15000); // function to incur delay for 15 Seconds
}
}
我有一个疑问,这对很多人来说可能是微不足道的。
我无法理解如何从无限 运行 循环中 return 一个值?(如果可能的话)
我浏览了互联网上的各种资源,他们都建议使用 MultiThreading。
但遗憾的是,我无法理解线程在这种情况下如何提供帮助。
这是我希望实现的模拟功能:-
void processReturnedValue(){
for(;;){
String currentTime = retrieveCurrentTime();
doSomethingWithReturenedValue(currentTime);
delay(15000); // function to incur delay for 15 Seconds
}
}
String retrieveCurrentTime(){
for(;;){
return currentDateTime.getDayOfYear()+ "_" + currentDateTime.getHour() + "_" + currentDateTime.getMinute() + "_" + currentDateTime.getSecond();
delay(15000); // function to incur delay for 15 Seconds
}
}
如果有人能解答我的疑问,我将不胜感激。
如果可能,请提供一个关于我的小的工作模拟示例。
谢谢期待中的你
不返回,而是将值分配给共享变量:
private final AtomicReference<String> currentTime = new AtomicReference<>();
// Thread 1:
void processReturnedValue() {
for(;;) {
doSomethingWithReturenedValue(currentTime.get());
delay(15000); // function to incur delay for 15 Seconds
}
}
// Thread 2:
String retrieveCurrentTime() {
for(;;) {
currentTime.set(currentDateTime.getDayOfYear()+ "_" + currentDateTime.getHour() + "_" + currentDateTime.getMinute() + "_" + currentDateTime.getSecond());
delay(15000); // function to incur delay for 15 Seconds
}
}