问题标签 [interruption]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1745 浏览

c++ - 非静态成员函数的中断处理

我正在尝试使用类中的成员函数进行中断处理。

代码是

其中的定义signalHandler

当我编译代码时,我得到一个错误说

我正在尝试SIGABRT使用此signalHandler功能进行捕获并清理和停止socketServer实例。我想我可以使用全局变量和全局函数来完成这项工作,但是关于使用成员函数这样做有什么想法吗?

0 投票
1 回答
584 浏览

signals - 从常规文件读取时 read() 会因 EINTR 而失败

据我所知,从常规文件读取时read()不能被信号中断并返回,同样在写入常规文件时也是如此。errno=EINTRwrite()

这与从终端、管道、套接字等读取或写入相反。

这在 Linux 上是否正确?

这是 POSIX 规定的吗?

编辑:假设我们正在讨论未配置为自动重新启动系统调用的信号中断。

0 投票
4 回答
9060 浏览

java - 处理 InterruptedException 的最佳方法

我正在使用 Thread.sleep(10000); 因此我需要处理 InterruptedException。我可以调用 Thread.currentThread.interrupt () 然后将异常抛出给调用类,或者我可以直接将它抛出给调用类或者有没有更好的方法来处理它?

0 投票
1 回答
169 浏览

java - 如何在 Java 中停止线程

我正在编写一个程序,该程序会生成一个介于 1 到 1,000 之间的随机数。然后它使用三个线程的线程池来搜索更广泛的 1 到 1,000 范围内的某些数字范围。线程检查其范围内的每个数字,并将其与随机目标数字进行比较,如果匹配,则向控制台发送消息。如果数字不匹配,这也会反映在发送到控制台的消息中。我试图弄清楚一旦达到目标数字如何结束程序,即使已经找到目标也不会继续分析数字。谢谢你。

这是 FindIt 类:

这是带有 main 方法的程序:

0 投票
1 回答
233 浏览

java - Java Thread - 同步线程

我有这样的事情:

所以,如果我运行没有参数的程序(我的意思是 String args[])程序可以正常工作,但是如果我设置 agument = abort

我的程序应该打印如下内容:

任务已创建 R. ...已中止。任务中止 31700

有时他打印得很好,但有时他会打印这样的东西:

任务已创建 RRTask 已中止 58891

和这样的:

任务已创建 RR ...准备就绪。任务就绪 70000

但我不知道为什么,所以我的问题是:

如何正确同步线程,以便他们可以做他们应该做的?

0 投票
1 回答
4249 浏览

android - Firebase 存储在下载过程中处理网络中断

我正在尝试从 firebase 存储中下载一些文件。当有稳定的互联网连接时,它工作得很好。但是,如果在下载内容中途断开互联网连接,它只会继续尝试下载内容。如何检测是否没有下载内容?

我已经实施onProgessListenerStorageReference. 但是,我不确定如何使用它来检测下载是否没有进度。

0 投票
4 回答
18663 浏览

java - 为什么我必须将每个 Thread.sleep() 调用包装在 try/catch 语句中?

我正在尝试用 Java 编写我的第一个多线程程序。我不明白为什么我们需要围绕 for 循环进行这种异常处理。当我在没有 try/catch 子句的情况下编译时,它会给出一个InterruptedException.

这是消息:

但是当使用 try/catch 运行时,catch 块中的 sysout 永远不会显示 - 这意味着无论如何都没有捕获到这样的异常!

0 投票
2 回答
81 浏览

java - 为什么 thread.sleep 在第一次捕获时不停止?

`据我了解,当出现异常情况时,控件会转到 catch,实现它并离开代码。当我们使用 thread.sleep 并为 interruptedException 创建一个 catch 时,为什么它会继续运行?而不是退出。这是代码,当 for 循环第一次运行时,它会在遇到 thread.sleep 时打印“0”,因此会出现中断异常,它不应该去捕获并执行 SOP 并终止吗?

0 投票
4 回答
89 浏览

java - 这个示例代码是简单的还是这里有使用中断()的理由

我正在阅读Goetz 的 Java Concurrency In Practice,其中显示了此示例代码:

与描述:

恢复中断。有时您不能抛出 InterruptedException,例如当您的代码是 Runnable 的一部分时。在这些情况下,您必须捕获 InterruptedException 并通过在当前线程上调用中断来恢复中断状态,以便调用堆栈更高的代码可以看到发出了中断,如清单 5.10 所示。

在示例代码中,如果执行此代码,“调用堆栈上方的代码”将永远不会看到中断 - 还是我做错了推论?这里的线程在调用后就死了interrupt(),对吗?

所以这interrupt()可能有用的唯一方法是如果它在一个循环中,对吗?

0 投票
2 回答
10553 浏览

swift - Swift中断后如何恢复音频?

我在这里按照说明进行操作,我已经整理了这个测试项目来处理音频播放的中断。具体来说,我使用默认 iphone 时钟应用程序中的闹钟作为中断。似乎中断处理程序被调用但没有超过该let = interruptionType行,因为“错误类型”出现了两次。

此外,按照这里的想法,我将处理程序修改为

结果是所有“开始”、“音频暂停”、“结束”和“音频恢复”都显示在控制台中,但实际上并未恢复音频播放。

注意:我移动了player.play()注释掉的where option == .ShouldResumeif 语句的外部,因为发生中断时该if条件不成立。.Ended