我对使用rxjava进行反应性编程是新手,在经历了更简单的示例之后,我现在试图弄清楚如何使用连续流。下面这个例子的问题是,在我接受了3个元素后,程序不会终止。我的假设是,我不知何故需要取消订阅我的可观察的,但我不完全掌握如何终止while循环并使程序退出。
我遇到了下面的RxJava帖子--终止无限流,但我仍然不知道我遗漏了什么。
class MyTwitterDataProvider {
/*
This example is written in Groovy
Instance variables and constructor omitted
*/
public Observable<String> getTweets() {
BufferedReader reader = new BufferedReader(new InputStreamReader(getTwitterStream()))
Observable.create({ observer ->
executor.execute(new Runnable() {
def void run() {
String newLine
while ((newLine = reader.readLine()) != null) {
System.out.println("printing tweet: $newLine")
observer.onNext(newLine)
}
observer.onCompleted()
}
})
})
}
def InputStream getTwitterStream() {
// code omitted
}
public static void main (String [] args) {
MyTwitterDataProvider provider = new MyTwitterDataProvider()
Observable<String> myTweetsObservable = provider.getTweets().take(3)
Subscription myTweetSubscription = myTweetsObservable.subscribe({tweet-> println("client prints: $tweet")})
// myTweetSubscription.unsubscribe()
}
}
您必须在循环中添加一个检查,以查看观察者是否仍被订阅:
while ((newLine = reader.readLine()) != null && !observer.isUnsubsribed()) {
System.out.println("printing tweet: $newLine")
observer.onNext(newLine)
}
问题内容: 我正在探索反应式编程和RxJava。这很有趣,但是我陷入了无法找到答案的问题。我的基本问题是:什么是合适的反应方式来终止否则将无限运行的Observable?我也欢迎对我的代码的批评和反应最佳实践。 作为练习,我正在编写日志文件tail实用程序。日志文件中的行流由表示。为了继续读取添加到文件中的文本,我忽略了通常的终止检查,而是将其解释为意味着我的线程应该休眠并等待更多的记录器文本。
终止容器 可以使用 docker container stop 来终止一个运行中的容器。 此外,当 Docker 容器中指定的应用终结时,容器也自动终止。 例如对于上一章节中只启动了一个终端的容器,用户通过 exit 命令或 Ctrl+d 来退出终端时,所创建的容器立刻终止。 终止状态的容器可以用 docker container ls -a 命令看到。例如 docker container ls
本文向大家介绍什么是PowerShell中的终止和非终止错误?,包括了什么是PowerShell中的终止和非终止错误?的使用技巧和注意事项,需要的朋友参考一下 Powershell执行脚本或命令时会生成两种类型的错误。终止错误和非终止错误。 终止错误-该错误是由您创建的脚本,函数或命令生成的,并且会停止或停止脚本的执行,从而导致下一行中的命令无法执行。要处理此错误,需要适当的机制,否则将显示错误消
问题内容: 我想使用mmap通过将具有MAP_SHARED标志集的mmap()与固定大小的结构与众所周知的文件名相关联,在Linux下运行的C程序中实现程序状态某些部分的持久性。出于性能原因,我不希望完全不调用msync(),并且没有其他程序将访问此文件。当我的程序终止并重新启动时,它将再次映射相同的文件并对其进行一些处理以恢复终止之前的状态。我的问题是这样的:如果我从不在文件描述符上调用msyn
下面的函数负责管理后端服务中的请求 返回 我看到输出,但函数执行没有终止,响应似乎成功了,但实际上并非如此...这里怎么了?
到目前为止,我们知道无论何时执行程序,都会创建一个进程,并在执行完成后终止。 如果我们需要在程序中创建进程并且可能希望为其安排不同的任务,该怎么办? 这可以实现吗? 是的,显然是通过创建流程。 当然,在完成工作后,它会自动终止,或者您可以根据需要终止它。 通过fork() system call实现进程创建。 新创建的进程称为子进程,启动它的进程(或启动执行时的进程)称为父进程。 在fork()系