zoukankan      html  css  js  c++  java
  • <C#>面试

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

    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方法当普通方法调用,程序依然要顺序执行,这时只是一个方法调用,程序依然只有主线程一个线程。

  • 相关阅读:
    Java自定义异常
    Java异常处理教程
    Java异常抛出
    Java泛型方法和构造函数
    Java泛型类
    Java继承方法隐藏(覆盖)
    Java继承和构造函数
    Java方法覆盖教程
    PHP设置时区
    PHPCMS v9的表单向导实现问答咨询功能的方法
  • 原文地址:https://www.cnblogs.com/virgil/p/3830588.html
Copyright © 2011-2022 走看看