`
lixuan74
  • 浏览: 16374 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

锁的中断

    博客分类:
  • java
 
阅读更多
别人的代码,那过来改改

package com.jdk.api.demo;
import java.util.concurrent.TimeUnit; 
import java.util.concurrent.locks.Lock; 
import java.util.concurrent.locks.ReentrantLock; 

public class LockDemo {
public static void main(String[] args){ 
 
 
     /*   Thread i2 = new Thread(new RunIt3()); 
         i2.start(); 
        i2.interrupt();  */

Thread i2 = new Thread(new Synn()); 
         i2.start(); 
        i2.interrupt();

    } 
}
// java.lang.InterruptedException: sleep interrupted
class Synn implements Runnable{

public synchronized void synn_method()
{

try {
Thread.sleep(1000000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

@Override
public void run() {
synn_method();

}



}


/**
* lockInterruptibly 与 lock比较区别在于
   lockInterruptibly 优先考虑响应中断,而不是响应锁定的普通获取或重入获取
* @author aircoder
*
*/
class RunIt3 implements Runnable{ 
 
    private static Lock lock = new ReentrantLock(); 
    public void run(){ 
        try{ 
            //---------------------------------a 
         //   lock.lock();  //代码永远不会结束
            lock.lockInterruptibly();   //代码永远不会结束 在  i2.interrupt(); 
             
              int i=0;
            System.out.println(Thread.currentThread().getName() + " running"); 
           // TimeUnit.SECONDS.sleep(20); 
            while(i==0){
           
            }
            lock.unlock(); 
            System.out.println(Thread.currentThread().getName() + " finished"); 
        } 
        catch (Exception e){ 
        e.printStackTrace();
            System.out.println(Thread.currentThread().getName() + " interrupted"); 
 
        } 
 
    } 

分享到:
评论

相关推荐

    OK6410中断裸机代码

    - 锁住中断(防止中断嵌套,确保当前中断处理的完整性) - 检查并识别中断源 - 处理中断事件,如读取数据、更新计数器等 - 清除中断标志(告诉外设中断已被处理) - 解锁中断(允许其他中断进来) - 恢复现场...

    单片机密码锁

    - **中断处理能力**:支持7向量4级中断结构,兼容传统51系列的5向量2级中断结构。 - **通信接口**:具备全双工串行口,支持数据的双向传输。 #### 三、系统组成及工作原理 该电子密码锁系统主要由以下几个部分组成...

    自己动手写一把可重入锁测试案例

    然而,实际的Java ReentrantLock类还包含了更多的优化,如条件变量、定时锁等待、锁中断等特性,这些在实现时需要额外考虑。 在提供的测试例子中,我们可以模拟多线程环境,观察自定义可重入锁在并发情况下的行为,...

    中断显示_单片机_alphabetr1k_

    通常,你需要配置中断控制器,设置中断优先级和中断使能,以及在中断服务程序中正确地锁定和解锁中断,避免中断嵌套带来的混乱。 文件列表中只有一个"中断显示"的文件,这可能包含了一个完整的中断驱动数码管显示的...

    中断 下半部 锁 进程调度

    ### 中断、下半部、锁及进程调度:深入理解Linux内核关键技术 #### 一、中断 ##### 1. 中断与异常 - **中断**:由外部硬件设备产生的信号,不受CPU时钟控制,因此是异步发生的。内核的目标是在确保安全的前提下...

    关于中断的keil c语言例子

    使用锁、信号量或邮箱等同步机制可以确保多中断环境下的数据一致性。 综上所述,理解并熟练运用Keil C中的中断机制对于嵌入式系统的实时性和响应性至关重要。通过学习和实践提供的工程文件,你可以深入了解如何在...

    IRQ中断 起始代码

    3. 锁定与同步:在多处理器系统中,为了防止多个CPU同时处理同一中断,需要使用锁或其他同步机制来确保数据一致性。 4. 中断处理速度:中断处理应该尽可能快,因为长时间的中断处理会阻塞其他任务,影响系统性能。 ...

    vxWork 一些阅读 点滴1

    首先,VxWorks提供了两种API来管理中断状态,以实现任务和中断服务程序(ISR)之间的互斥: 1. `intLock()`:这个函数会禁用中断,类似于设置中断禁止位EA为0。在调用`intLock()`后,当前任务会继续执行,直到调用`...

    周立功的LPC2104外部中断实例(有详细说明)

    可以使用互斥锁或者中断屏蔽机制来确保数据一致性。 8. **中断响应时间**:LPC2104的中断响应时间受到CPU当前状态、中断优先级、软件处理等因素的影响。优化中断处理流程可以缩短响应时间,提升系统实时性。 通过...

    PLC实验报告:程序中在禁止中断(DI)时有中断事件发生,PLC记住该中断,留待EI指令后执行中断。

    本实验旨在验证一个特定的中断行为:即当PLC在执行程序过程中遇到中断禁止指令(DI)时,如果有中断事件发生,则PLC会记住这些中断,并在遇到中断允许指令(EI)之后再执行这些中断。通过设计实验方案并编写相应的...

    多核微处理器系统中断处理和中断控制的实现

    中断处理时,可能需要锁或其他同步机制来避免数据竞争和死锁问题。 7. 非阻塞中断(NMI)和快速中断(FIQ): 非阻塞中断不等待当前指令执行完毕就能立即响应,常用于处理紧急情况。快速中断则提供了更高效的中断...

    Windows驱动编程视频教程 提升IRQ与自旋锁

    在Windows驱动程序开发中,理解和掌握中断请求级别(IRQ)以及自旋锁是至关重要的。本视频教程将深入探讨这两个核心概念,旨在帮助开发者提升驱动程序的性能和稳定性。 首先,我们来了解一下中断请求级别(IRQ)。...

    基于飞腾1500A/4的嵌入式操作系统适配技术.docx

    - 保持中断服务程序的简洁性以减少锁中断时间,保障实时性能。 - **流程图**:飞腾1500A/4的中断处理流程图展示了从发生中断到恢复中断的具体步骤。 3. **多核同步与互斥** - **实现方法**:多核系统中需要通过...

    软中断开发实例6-13

    4. **中断上下文**:软中断在中断上下文中运行,不允许睡眠或持有锁,因为这可能导致死锁。 在软中断开发实例6-13中,可能包含以下内容: 1. **注册和注销**:如何注册新的软中断处理函数,以及在不再需要时如何...

    linux 中断的上半部和下半部

    - 可以并发运行在多个CPU上,需要使用自旋锁保护共享资源。 - 常用于网络和SCSI子系统。 **2. Tasklet** Tasklet是一种基于软中断实现的下半部机制,它可以更加灵活地管理和调度中断相关的任务。 **特点:** - ...

    串口1-串口2-同时中断收发-C语言_stc串口1和串口2同时中断收发_wrongzhs_

    例如,使用互斥锁或队列管理发送和接收的数据。 6. **错误处理**: - 对于可能出现的错误,如溢出错误、帧错误、校验错误等,需要在中断服务函数中进行检查并适当处理。 7. **代码示例**: 在06-串口1-串口2-...

    IRQ外部中断改进IRQ外部中断改进

    为了确保正确处理,需要使用锁或自旋锁等同步机制来保护共享资源。 5. **中断优先级**:中断优先级的设置决定了哪个中断可以打断另一个中断。高级别的中断可以打断低级别的中断,但低级别的中断无法打断高级别的...

    Linux内核的中断机制分析

    底半部则是进一步延迟的中断处理,用于避免在中断处理过程中持有锁的时间过长,提高系统并发性能。 Linux还引入了中断线分离(IRQ affinity)的概念,允许将中断分配到特定的CPU核心,以优化系统资源的利用和减少...

    网卡中断函数的实现

    释放自旋锁并恢复之前的中断状态,最后返回`IRQ_HANDLED`表示中断已被正确处理。 ### 四、总结 通过对这段代码的详细分析,我们可以看到一个典型的网卡中断处理流程。在裸板驱动中实现网卡中断处理时,需要细致地...

    HI3559AV100串口中断不够的解决方案

    2. **同步机制**:为了避免中断处理过程中的数据冲突,可能需要引入锁或其他同步机制,确保在处理一个设备的中断时,其他设备的数据不会被错误地处理。 3. **中断延迟**:由于共享中断可能导致响应时间延长,因此...

Global site tag (gtag.js) - Google Analytics