描述线程与进程的区别?
线程(Thread)与进程(Process)二者都定义了某种边界,不同的是进程定义的是应用程序与应用程序之间的边界,不同的进程之间不能共享代码和数据空间,而线程定义的是代码执行堆栈和执行上下文的边界。一个进程可以包括若干个线程,同时创建 多个线程来完成某项任务,便是多线程。
而同一进程中的不同线程共享代码和数据空间。用一个比喻来说,如果一个家庭代表 一个进程,在家庭内部,各个成员就是线程,家庭中的每个成员都有义务对家庭的财富进行积累,同时也有权利对家庭财富进行消费,当面对一个任务的时候,家庭也可以派出几个成员来协同完成,而家庭之外的人则没有办法直接消费不属于自己家庭的 财产。
在c#中sleep() 和 wait() 有什么区别?
1)sleep是线程类Thread 的方法,它是使当前线程暂时睡眠,可以放在任何位置。
而wait是Object类的方法,它是使当前线程暂时放弃对象的使用权进行等待,必须放在同步方法或同步块里。
2)Sleep使用的时候,线程并不会放弃对象的使用权,即不会释放对象锁,所以在同步方法或同步块中使用sleep,一个线程访问时,其他的线程也是无法访问的。
而wait是会释放对象锁的,就是当前线程放弃对象的使用权,让其他的线程可以访问。
3)线程执行wait方法时,需要另一个线程调用notify进行唤醒。
而sleep只是暂时休眠一定时间,时间到了之后,自动恢复运行,不需另外的线程唤醒。
using 关键词有什么用?跟IDisposable 有啥关系?
using 可以声明 namespace 的引入,还可以实现非托管资源的释放,实现了 IDisposiable 的类在 using 中创建,using 结束后会自动调用该对象的 Dispose 方法,释放资源。加分的补充回答:using 其实等价于 try……finally,用起来更方便
…
…
…