拼多多怎么提升动态分DSR动态分

请教怎么清除中断请求?
请教怎么清除中断请求?
发布时间: 21:53:33
编辑:www.fx114.net
本篇文章主要介绍了"请教怎么清除中断请求?",主要涉及到请教怎么清除中断请求?方面的内容,对于请教怎么清除中断请求?感兴趣的同学可以参考一下。
请教怎么清除中断请求?请问如何清除中断请求??如题。我知道注册了中断号以后,用InterruptDone(中断号)可以清除对应的中断请求并且使能中断,但这里我想在别的地方直接操作中断寄存器把中断请求清掉,而不想申请中断号然后用InterruptDone。我是在某些条件下想要撤销EINT0的中断操作。我试了这样:SRCPND1 |= 0x1; INTPND1 |= 0x1;结果无效。想请教一下应该怎样解决??谢谢你这样是不行的,必须通过InterruptDone。InterruptDone是告诉操作系统中断处理已经完成,从而使操作系统能够准备处理其他的中断。你单单清除中断寄存器是不行的
你从什么什么地方,引进的中断输入信号了。还有就是中断控制寄存器当中不是有个使能寄存器,这个应该可以控制的!可以试试看看,个人观点,可能不对!
探讨那我在A.cpp文件里申请了EINT0的中断号,在B.cpp文件里也要用InterruptDone清除EINT0请求的话,也要重新申请中断号吗??如果不用的话,那我怎么获取在A.cpp文件里申请过的中断号呢??(我的文件执行顺序是先B文件,再A文件,A文件代码负责处理中断事件。我想在某些时候在B文件里把EINT0请求清掉,不让它在A文件里处理EINT0中断)谢谢
两个文件的东西,情况比较复杂吧,也许是你设定的变量因为缓冲的关系,都没有被中断更新。试试把外部中断寄存器也设置一下。 s2440IOP-&rEINTMASK |= 0x4000; s2440IOP-&rEINTPEND = 0x4000; s2440INT-&rSRCPND = BIT_EINT8_23; if (s2440INT-&rINTPND & BIT_EINT8_23)& s2440INT-&rINTPND = BIT_EINT8_23;上面的是我清理EINT14的
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:2010年9月 硬件/嵌入开发大版内专家分月排行榜第二2010年8月 硬件/嵌入开发大版内专家分月排行榜第二2010年3月 硬件/嵌入开发大版内专家分月排行榜第二2010年2月 硬件/嵌入开发大版内专家分月排行榜第二2010年1月 硬件/嵌入开发大版内专家分月排行榜第二2009年11月 硬件/嵌入开发大版内专家分月排行榜第二
2010年5月 硬件/嵌入开发大版内专家分月排行榜第三2010年4月 硬件/嵌入开发大版内专家分月排行榜第三2009年12月 硬件/嵌入开发大版内专家分月排行榜第三2009年10月 硬件/嵌入开发大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。java编程学习(8)
每一个线程都有一个boolean类型的中断状态。当中断线程时,这个线程的中断状态将被设置为true,在Thread中,有以下三个方法中断线程和查询线程中断状态的方法。
public class Tread{
&&& public void interrupt(){....}
&&& public boolean isInterrupted(){....}
&&& public static boolean interrupted(){....}
interrupt方法将中断目标线程,而isInterrupted方法能返回目标线程的中断状态,interrupted将清除当前线程的中断状态,并返回它之前的值,也是清除中断状态的唯一方法。
阻塞库方法,例如Thread.sleep和Object.wait等,都会检查线程的中断状态,并且在发现中断时提前返回。他们在响应中断时的执行操作:清除中断状态,抛出InterruptedException,
表示阻塞操作由于中断而提前结束。
中断操作不会真正的中断一个正在运行的线程,而是发出中断请求。然后由线程在一个合适的时刻中断自己。(这个时刻也被称为取消点)。通常,中断是实现取消的最合理方式。
由于每一个线程拥有各自的中断策略,因此除非你知道中断对改线程的含义,否则就不应该中断这个线程。
当调用可中断的阻塞函数时,如BlockingQueu.put等,有两种实用策略可用于处理InterruptedException:
1.传递异常,从而使你的方法也成为可中断的阻塞方法。
2.恢复中断状态,从而使调用栈中的上层代码能够对其进行处理。
传递异常相对简单,如果不想传递异常或者无法传递InterruptedException(或许通过Runnable来定义任务),那么需要另一种方式来保存中断。一种标准方法就是通过再次调用interrupt来恢复中断状态。你不能屏蔽InterruptedException,例如在catch块中捕获到异常去不做任何处理,除非在你的代码中实现了线程的中断策略。
例如不可取消的任务在退去前恢复中断
public Task getNextTask(BlockingQueue&Task& queue){
&boolean interrupted =
&&while(true){
&&&&return queue.take();
&&&} catch (InterruptedException e) {
&&&&// try again
&&&&interrupted=
&}finally{
&&if(interrupted){
&&&Thread.currentThread().interrupt();
如果过早设置中断状态,就可能引起无限循环,因为大多数可中断的阻塞方法都会在入口处检查中断状态,并且当发现被设置时会立即抛出InterruptedException异常。(检查中断,从而尽快响应中断)
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:11997次
排名:千里之外
原创:18篇
转载:320篇
(3)(8)(6)(2)

我要回帖

更多关于 提升动态评分 的文章

 

随机推荐