社区
C#
帖子详情
一个关于线程Sleep的小问题
mahushen
2015-03-13 10:12:58
创建了一个对象A,A中有一个线程B和一个公共过程C
C中包含了一条 thread.sleep(100) 语句,B线程在执行过程中调用了C,那么这时C中的thread.sleep语句的是否仅对B线程起作用?
如果在创建A的主进程中调用A的C过程,那么C中的thread.sleep的作用范围是那个?
...全文
275
9
打赏
收藏
一个关于线程Sleep的小问题
创建了一个对象A,A中有一个线程B和一个公共过程C C中包含了一条 thread.sleep(100) 语句,B线程在执行过程中调用了C,那么这时C中的thread.sleep语句的是否仅对B线程起作用? 如果在创建A的主进程中调用A的C过程,那么C中的thread.sleep的作用范围是那个?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
於黾
2015-03-13
打赏
举报
回复
这就好比玩大富翁的时候,有个格子里写上:休息一轮 那么当然是谁走到这个格子里,谁就休息,跟别人没有关系 大富翁的棋盘相当于代码 而4个玩家是线程 同样的代码,4个线程分别执行的时候,可能执行顺序完全都不一样的
搞不懂现代人
2015-03-13
打赏
举报
回复
说简单一些阻塞是当前调用他的线程,也就是B线程调用C函数时执行到Sleep,B线程就被阻塞,同样A调用也会阻塞A线程
老张一笑
2015-03-13
打赏
举报
回复
如果在创建A的主进程中调用A的C过程,那么C中的thread.sleep的作用范围是那个? 说白了就是,程序里定义了对象(class),哪个线程都可以去用它,哪个线程用它就Sleep谁。
於黾
2015-03-13
打赏
举报
回复
这东西很难理解吗? 好比你在函数里写了个while(true)死循环 那么到底是哪个线程陷入死循环? 当然是你用哪个线程去调用这个函数,哪个线程就陷入死循环了
於黾
2015-03-13
打赏
举报
回复
实际上就是执行到sleep,代码会阻塞在这里一定时间,再继续执行 那么当然是哪个线程去调用它,哪个线程就被阻塞了,跟别的线程没有关系
以专业开发人员为伍
2015-03-13
打赏
举报
回复
Sleep是阻塞代码所执行的“当前线程”的。 代码有两个概念,一个是指它的静态形式,另一个是加载到内存中之后被线程上下文指针所引用的“影像”。这里显然是指后者。
Forty2
2015-03-13
打赏
举报
回复
微软的MSDN解释为:‘将当前线程阻塞指定的毫秒数’ 也就是它作用于那个执行thread.sleep命令的线程。
l245382052
2015-03-13
打赏
举报
回复
引用 8 楼 SPFarm 的回复:
谁调用C,谁就暂停。 A调用的时候A会sleep, B调用的时候B会sleep。
最简单明了的答案
SPFarmer
2015-03-13
打赏
举报
回复
谁调用C,谁就暂停。 A调用的时候A会sleep, B调用的时候B会sleep。
线程
的
sleep
方法
关于
sleep
(); static void
sleep
(long millis) 1、静态方法:Thread.
sleep
(1000); 2、参数是毫秒 3、作用是:让当前的
线程
进入休眠,进入”阻塞状态“,放弃占用cpu时间片,让其
线程
使用。 这行代码出现A
线程
中,A
线程
就会进入休眠 这行代码出现B
线程
中,B
线程
就会进入休眠。 *4、Thread.
sleep
方法的效果: *间隔特定时间,去执行一段特定的代码,每隔多久去执行一次。 package com; /** * 关于
sleep
(); * s
在
一个
线程
中
sleep
(1000) 方法,将使得该
线程
在多少时间后获得对 CPU 的控制(假设睡眠过程中不会有其他时间唤醒该
线程
)?
问:在
一个
线程
中
sleep
(1000) 方法,将使得该
线程
在多少时间后获得对 CPU 的控制(假设睡眠过程中不会有其他时间唤醒该
线程
)?(C) A. 正好1000毫秒 B. 1000毫秒不到 C. >=1000毫秒 D. 不一定 解析:因为在程序
sleep
之后
线程
进入就绪态,在这种状态下,需要检查现在是否有资源允许现在的
线程
继续运行,如果条件不满足,则需要等待。如果是现在有资源则立即执行。
线程
的五大状态 (1)新建状态:即单纯地创建
一个
线程
,创建
线程
有三种方式,在我的博客:
线程
的创建,可以自行查
关于
线程
的
sleep
线程
多
线程
-
线程
休眠(
sleep
)
1.
sleep
()介绍
sleep
() 定义在Thread.java中。
sleep
() 的作用是让当前
线程
休眠,即当前
线程
会从“运行状态”进入到“休眠(阻塞)状态”。
sleep
()会指定休眠时间,
线程
休眠的时间会大于/等于该休眠时间;在
线程
重新被唤醒时,它会由“阻塞状态”变成“就绪状态”,从而等待cpu的调度执行。 2.
sleep
()示例 下面通过
一个
简单示例演示
sleep
()的...
关于
线程
的interrupt与
sleep
问题
关于
线程
的interrupt与
sleep
问题
目录关于
线程
的interrupt与
sleep
问题
情况一:自定义
线程
中写interrupt与
sleep
所以以后要用这种方法结束
线程
,编码时是先写interrupt后写
sleep
这样才能抛异常。情况二:主
线程
中写 所以综上所述,这种方式,还是执行了先interrupt方法后执行了
sleep
方法才抛出的异常再换一种情况&nbs
C#
111,098
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章