博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
<C#>面试
阅读量:5117 次
发布时间:2019-06-13

本文共 603 字,大约阅读时间需要 2 分钟。

近来,我有去面试,常碰一些题:

1、Sleep()和Wait()区别?

答:一、两个方法来自不同的类,Sleep()来自Thread类,是Thread的静态类方法,Wait()来自Object类;

二、最主要是Sleep()没有释放锁,而Wait()释放了锁;Sleep不出让系统资源;而wait是进入线程等待池等待;wait没有时间限制,需要等待notify/notifyAll唤醒,才会进入就绪队列等待系统资源,Sleep(milliseconds)可以用时间指定唤醒过来,时间没到还可以调用interrupt()强行打断;Thread.Sleep(0)的作用是“触发操作系统重新进行一次CPU竞争”;

三、Sleep()可在任一地方使用,wait()及notify和notifyall只能在同步控制范围使用;

四、Sleep()必须捕获异常,而wait(),notify和notifyAll不需要捕获异常。

2、Start()和Run()在线程中区别?

答:start()用来启动线程,线程处于就绪状态,然后通过run()来完成运行操作;

run为线程体,包含执行的内容,run方法结束,线程就要终止;

run方法当普通方法调用,程序依然要顺序执行,这时只是一个方法调用,程序依然只有主线程一个线程。

 

转载于:https://www.cnblogs.com/virgil/p/3830588.html

你可能感兴趣的文章
前端框架性能对比
查看>>
@property中 retain 详解
查看>>
uva 387 A Puzzling Problem (回溯)
查看>>
12.2日常
查看>>
Delphi 取整函数round、trunc、ceil和floor
查看>>
C/C++二维数组的用法
查看>>
排序 冒泡排序法
查看>>
同步代码时忽略maven项目 target目录
查看>>
MVC.NET:提供对字体文件.woff的访问
查看>>
Informatica_(2)第一个例子
查看>>
string 常用函数
查看>>
RGB色彩的计算机表示
查看>>
朱元璋
查看>>
Oracle中包的创建
查看>>
python入门_老男孩_数据类型简介_int/bool/str转换_字符串索引和切片_字符串操作_day3...
查看>>
团队开发之个人博客八(4月27)
查看>>
发布功能完成
查看>>
【原】小程序常见问题整理
查看>>
C# ITextSharp pdf 自动打印
查看>>
Kattis之旅——Number Sets
查看>>