标签: interrupt

当MATLAB真的很忙时怎么能打断它?

我在MATLAB中运行了一个很长的模拟,我意识到我需要停止并重新运行.但是,MATLAB真正进入了这个计算,并且它已停止响应.如何在不杀死MATLAB的情况下中断此运行?

(我意识到这是许多Windows程序的一个问题,但它对MATLAB来说非常严重.)

matlab windows-xp interrupt

34
推荐指数
4
解决办法
8万
查看次数

信号和中断比较

基于各种参考文献,我在Linux中信号的主观定义是"用于通知进程有关特定事件发生的触发器.此处的事件可能涉及软件异常.此外,信号也可用于IPC机制. " 我的问题是

  • 我假设只通过信号通知例外(软件中断).硬件中断的情况.
  • 信号的各种来源是什么?对我而言,内核始终是信号的来源.(除了用于IPC)
  • 信号处理程序和ISR之间的区别?
  • 信号阻塞和中断屏蔽之间的区别?

linux posix signals interrupt isr

32
推荐指数
2
解决办法
3万
查看次数

Thread.interrupt()是邪恶的吗?

一位队友提出以下要求:

" Thread.interrupt()本质上是破碎的,应该(几乎)永远不会被使用".

我试图理解为什么会这样.

它是一个永远不会使用的已知最佳实践Thread.interrupt()吗?你能提供证据证明它为何被破坏/错误,并且不应该用于编写强大的多线程代码吗?

注意 - 如果从设计防腐剂中"非常",我对这个问题不感兴趣.我的问题是 - 它有多少?

java multithreading interrupt

30
推荐指数
3
解决办法
1万
查看次数

停止等待std :: condition_variable的C++ 11 std :: threads

我试图理解新的C++ 11标准中的基本多线程机制.我能想到的最基本的例子如下:

  • 生产者和消费者在不同的线程中实现
  • 生产者在队列中放置一定数量的项目
  • 如果存在任何存在,则消费者从队列中获取项目

这个例子也被用在许多关于多线程的学校书籍中,关于通信过程的一切都很好.但是,在停止使用者线程时我遇到了问题.

我希望消费者运行直到它获得明确的停止信号(在大多数情况下,这意味着我等待生产者完成所以我可以在程序结束之前停止消费者).不幸的是,C++ 11线程缺少一种中断机制(例如我从Java中的多线程中知道).因此,我必须使用标志isRunning来表示我想要一个线程停止.

现在的主要问题是:在我停止生产者线程之后,队列为空并且消费者在等待a condition_variable再次填充队列时获取信号.所以我需要通过notify_all()在退出之前调用变量来唤醒线程.

我找到了一个有效的解决方案,但似乎有些混乱.下面列出了示例代码(很抱歉,但不知何故,我无法为"最小"最小示例减少代码大小):

队列类:

class Queue{
public:
    Queue() : m_isProgramStopped{ false } { }

    void push(int i){
        std::unique_lock<std::mutex> lock(m_mtx);
        m_q.push(i);
        m_cond.notify_one();
    }

    int pop(){
        std::unique_lock<std::mutex> lock(m_mtx);
        m_cond.wait(lock, [&](){ return !m_q.empty() || m_isProgramStopped; });

        if (m_isProgramStopped){
            throw std::exception("Program stopped!");
        }

        int x = m_q.front();
        m_q.pop();

        std::cout << "Thread " << std::this_thread::get_id() << " popped " << x << "." << std::endl;
        return x;
    }

    void stop(){
        m_isProgramStopped = …
Run Code Online (Sandbox Code Playgroud)

c++ multithreading interrupt condition-variable c++11

30
推荐指数
1
解决办法
2万
查看次数

静态全局变量和静态volatile变量之间有什么区别?

我在文件范围中使用了静态全局变量和静态volatile变量,

两者都由ISR和主循环更新,主循环检查变量的值.

在优化期间,全局变量和volatile变量都不会被优化.因此,全局变量不是使用volatile变量来解决问题.

那么使用全局变量而不是volatile是否合适呢?

使用静态volatile的任何具体原因??

任何示例程序都是可观的.

提前致谢..

c static global interrupt volatile

28
推荐指数
3
解决办法
9万
查看次数

模拟iPhone模拟器中的电话中断

我希望看到我的应用程序如果被电话或短信中断,会发生什么.有没有办法在iPhone模拟器上测试?

iphone testing interrupt ios-simulator

27
推荐指数
1
解决办法
2万
查看次数

Intel x86 vs x64系统调用

我正在阅读x86和x64之间的汇编差异.

在x86上,系统调用号被放入eax,然后int 80h执行以生成软件中断.

但是在x64上,系统调用号被放入rax,然后syscall被执行.

我被告知,syscall它比生成软件中断更轻,更快.

为什么它在x64上比x86更快,我可以使用x64进行系统调用int 80h吗?

linux x86 assembly x86-64 interrupt

26
推荐指数
2
解决办法
9436
查看次数

有没有办法防止ClosedByInterruptException?

在下面的示例中,我有两个线程使用的一个文件(在实际示例中,我可以有任意数量的线程)

import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

public class A {
    static volatile boolean running = true;

    public static void main(String[] args) throws IOException, InterruptedException {
        String name = "delete.me";
        new File(name).deleteOnExit();
        RandomAccessFile raf = new RandomAccessFile(name, "rw");
        FileChannel fc = raf.getChannel();

        Thread monitor = new Thread(() -> {
            try {
                while (running) {
                    System.out.println(name + " is " + (fc.size() >> 10) + " KB");

                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        System.out.println("Interrupted");
                        Thread.currentThread().interrupt(); …
Run Code Online (Sandbox Code Playgroud)

java filechannel interrupt java-9

25
推荐指数
3
解决办法
1628
查看次数

如何在Python中被杀之前运行最后一个函数?

有没有办法在运行的Python脚本被其他脚本,键盘中断等杀死之前运行最后一个命令.

python function interrupt exit

23
推荐指数
5
解决办法
2万
查看次数

中断是否会中断Arduino上的其他中断?

我有一个Arduino Uno(很棒的小装置!).它有两个中断; 我们称他们为01.我使用attachInterrupt():http://www.arduino.cc/en/Reference/AttachInterrupt将一个处理程序连接到中断0,另一个处理程序用于中断1 .

中断0被触发,它调用它的处理程序,它执行一些数字运算.如果在触发中断1时中断0的处理程序仍在执行,会发生什么?

中断1中断中断0,还是中断1等待,直到中断0的处理程序执行完毕?

请注意,这个问题与Arduino有关.

embedded microcontroller arduino interrupt interrupt-handling

22
推荐指数
2
解决办法
3万
查看次数