社区
Linux_Kernel
帖子详情
单条汇编语句是否可能因线程切换而被打断?
nekeyu606
2006-08-24 05:47:45
...
mov 0x1,%eax
mov 0x0,%ebx
...
线程是否可能在汇编语句执行中被切换出去?
好像一个mov需要4个时钟周期,线程是否可能在这4个时钟周期中给切换走?
linux切换点是怎么选取的?
...全文
608
7
打赏
收藏
单条汇编语句是否可能因线程切换而被打断?
... mov 0x1,%eax mov 0x0,%ebx ... 线程是否可能在汇编语句执行中被切换出去? 好像一个mov需要4个时钟周期,线程是否可能在这4个时钟周期中给切换走? linux切换点是怎么选取的?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
superwiles
2006-09-14
打赏
举报
回复
看你怎么赋值了,简单的直接赋值是有可能被打断的,所以必须使用
(*(unsigned long *)&jiffiers)++,
SMP下 一个汇编指令并不一定就是原子的。
tkit
2006-09-12
打赏
举报
回复
非对齐的内存访问也有问题,除非显示的加LOCK前缀,否则中断可以发生
slone
2006-09-04
打赏
举报
回复
mov 0x1,%eax
mov 0x0,%ebx 如果只是对register 操作是不用担心的啦,但如果对内存操作就要注意了,smp 系统可能会存在的
nekeyu606
2006-09-04
打赏
举报
回复
其实这个问题的来源是:
对一个int32的赋值需要加锁保护么?
我们资深主管说不行...可是最终的赋值仅仅只是一条mov语句啊..
默默努力的小熊
2006-08-24
打赏
举报
回复
在cpu执行指令的过程中,不会出现一条机器指令被中断执行的情况。但是如果有若干条指令的话,就无法保证这些指令的执行是原子性的,除非你使用临界区。
单条汇编语句是否可能因线程切换而被打断? 一般情况下,一条汇编语句算一个CPU指令,就不会出现被中断。这里说是一般情况下是因为有些汇编语句是由几条汇编组成的,比如enter/leave,我不清楚在CPU在执行类似这样的指令的时候是否保持他们的原子性。
linux下由原子操作来保证,原子类型的定义和原子操作API都放在内核源码树的include/asm/atomic.h文件中,大部分使用汇编语言实现,因为c语言并不能实现这样的操作。
daemeon
2006-08-24
打赏
举报
回复
1
不会, 中断不会打断单条指令的执行。
When CPU completes executing the current instruction. it determins whether an interrupt i active by checking (1)instruction executions, (2) single-setup, (3) NMI, (4) coprocessor segment overrrun, (5) INTR, (6) INT instrution.
Spring实现定时任务的几种方式
Spring Task 是 Spring 框架提供的一种任务调度和异步处理的解决方案。可以按照约定的时间自动执行某个代码逻辑它可以帮助开发者在 Spring 应用中轻松地实现定时任务、异步任务等功能,提高应用的效率和可维护性。springboot中有一个bean,ThreadPoolTaskScheduler,可以很方便的对重复执行的任务进行调度管理;相比于通过java自带的周期性任务
线程
池ScheduleThreadPoolExecutor,此bean对象支持根据cron表达式创建周期性任务。
spring定时任务的几种实现方式
spring定时任务的几种实现方式 一.分类 从实现的技术上来分类,目前主要有三种技术(或者说有三种产品): Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少,这篇文章将不做详细介绍。 使用Quartz,这是一个功能比较强大的的调度器,可以让你的程序在指定时间执行,也可以按照某一个频度执行,配置起来稍显复杂。 Spring3.0以后自带的task,可以将它看成一个
spring boot 几种定时任务的实现方式
定时任务实现的几种方式: 1、Timer:这是java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少。 2、ScheduledExecutorService:也jdk自带的一个类;是基于
线程
池设计的定时任务类,每个调度任务都会分配到
线程
池中的一个
线程
去...
Linux_Kernel
4,469
社区成员
17,458
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章