当前位置: 首页 > news >正文

已注册域名怎么做网站呢网站建设师薪资

已注册域名怎么做网站呢,网站建设师薪资,做网站多少费用,宝山湖网站建设Java面试之多线程—day1 一. 线程中sleep方法与wait方法有什么区别#xff1f; 对于 sleep()方法#xff0c;我们首先要知道该方法是属于 Thread 类中的。而 wait()方法#xff0c;则是属于Object 类中的。 在调用 sleep()方法的过程中#xff0c; 线程不会释放对象锁。而…Java面试之多线程—day1 一. 线程中sleep方法与wait方法有什么区别 对于 sleep()方法我们首先要知道该方法是属于 Thread 类中的。而 wait()方法则是属于Object 类中的。 在调用 sleep()方法的过程中 线程不会释放对象锁。而当调用 wait()方法的时候线程会放弃对象锁进入与该对象相关的等待池中只有针对此对象当等待时间到了的时候或者调用 notify()方法后才会返回对象锁。 二. Java中线程的实现方式同步的方式 继承thread类实现runnable接口通过callable和future来实现call方法有返回值和声明异常使用线程池例如executor框架来实现 三. 同步锁与死锁 同步锁当多个线程同时访问同一个数据时很容易出现问题。为了避免这种情况出现我们要保证线程 同步互斥就是指并发执行的多个线程在同一时间内只允许一个线程访问共享数据。 Java 中可 以使用 synchronized 关键字来取得一个对象的同步锁。 死锁何为死锁就是多个线程同时被阻塞它们中的一个或者全部都在等待某个资源被释放。 线程池的原理 线程池做的工作主要是控制运行的线程的数量处理过程中将任务放入队列然后在线程创建后 启动这些任务如果线程数量超过了最大数量超出数量的线程排队等候等其它线程执行完毕 再从队列中取出任务来执行。 他的主要特点为 线程复用 控制最大并发数 管理线程。 线程池的组成 一个线程池主要有四个方面组成 1. 线程池管理器用于创建并管理线程池 2. 工作线程线程池中的线程 3. 任务接口每个任务必须实现的接口用于工作线程调度其运行 4. 任务队列用于存放待处理的任务提供一种缓冲机制 1. **corePoolSize指定了线程池中的线程数量。**2. **maximumPoolSize指定了线程池中的最大线程数量。**3. **keepAliveTime当前线程池数量超过 corePoolSize 时多余的空闲线程的存活时间即多少时间内会被销毁。** 4. unit keepAliveTime 的单位。 5. workQueue任务队列被提交但尚未被执行的任务。 6. threadFactory线程工厂用于创建线程一般用默认的即可。 7. handler拒绝策略当任务太多来不及处理如何拒绝任务。 拒绝策略 线程池中的线程已经用完了无法继续为新任务服务同时等待队列也已经排满了再也 塞不下新任务了。这时候我们就需要拒绝策略机制合理的处理这个问题。 JDK 内置的拒绝策略如下 1. AbortPolicy 直接抛出异常阻止系统正常运行。 2. CallerRunsPolicy 只要线程池未关闭该策略直接在调用者线程中运行当前被丢弃的 任务。显然这样做不会真的丢弃任务但是任务提交线程的性能极有可能会急剧下降。 3. DiscardOldestPolicy 丢弃最老的一个请求也就是即将被执行的一个任务并尝试再 次提交当前任务。 4. DiscardPolicy 该策略默默地丢弃无法处理的任务不予任何处理。如果允许任务丢 失这是最好的一种方案。 以上内置拒绝策略均实现了 RejectedExecutionHandler 接口若以上策略仍无法满足实际 需要完全可以自己扩展 RejectedExecutionHandler 接口。 6. Java线程池的工作原理 1. 线程池刚创建时里面没有一个线程。任务队列是作为参数传进来的。不过就算队列里面 有任务线程池也不会马上执行它们。 2. 当调用 execute() 方法添加一个任务时线程池会做如下判断 a) 如果正在运行的线程数量小于 corePoolSize那么马上创建线程运行这个任务 b) 如果正在运行的线程数量大于或等于 corePoolSize那么将这个任务放入队列 c) 如果这时候队列满了而且正在运行的线程数量小于 maximumPoolSize那么还是要 创建非核心线程立刻运行这个任务 d) 如果队列满了而且正在运行的线程数量大于或等于 maximumPoolSize那么线程池 会抛出异常 RejectExecutionException。 3. 当一个线程完成任务时它会从队列中取下一个任务来执行。 4. 当一个线程无事可做超过一定的时间 keepAliveTime时线程池会判断如果当前运 行的线程数大于 corePoolSize那么这个线程就被停掉。所以线程池的所有任务完成后它 最终会收缩到 corePoolSize 的大小。 线程与进程的区别 线程的生命周期状态 1. 新建new当程序使用 new 关键字创建了一个线程之后该线程就处于新建状态此时仅由 JVM 为其分配 内存并初始化其成员变量的值. 2. 就绪runnable:当线程对象调用了 start()方法之后该线程处于就绪状态。 Java 虚拟机会为其创建方法调用栈和 程序计数器等待调度运行。 3. 运行running:如果处于就绪状态的线程获得了 CPU开始执行 run()方法的线程执行体则该线程处于运行状 态 4. 阻塞blocked:阻塞状态是指线程因为某种原因放弃了 cpu 使用权也即让出了 cpu timeslice暂时停止运行。 直到线程进入阻塞(runnable)状态才有机会再次获得 cpu timeslice 转到运行(running)状 态。阻塞的情况分三种 5. 死亡dead线程会以下面三种方式结束结束后就是死亡状态。 start方法和run方法的区别 1。 调用start方法来启动多线程这时候蔡真正的实现多线程运行这时无需等待run方法执行完毕就可以直接继续执行下面的代码这个时候线程是处于就绪runnable 状态。 2。run方法称为线程体调用run方法的时候线程进入运行态当run方法执行完毕时线程就结束了。 守护线程 守护线程也叫“服务线程”为用户提供公共服务在没有用户可提供的时候会自动离开。守护线程的优先级比较低。 垃圾回收线程就是一个经典的守护线程当我们程序中不在有其他任何运行的线程时程序就不会产生垃圾垃圾回收器也就无事可做垃圾回收器就会自动离开。
http://wiki.neutronadmin.com/news/267690/

相关文章:

  • 房产中介网站建设技巧网站设计时应考虑哪些因素
  • iis 网站 500长春火车站时刻表
  • 旅游自媒体网站怎么做学校网站群建设设计
  • 企业网站备案材料搭建网站的方案
  • 专业网站设计的公司价格设计产品
  • 手机企业网站多少钱标志网
  • 泾川建设路网站株洲seo优化高手
  • 网站 二级域名南京安居建设集团网站
  • 个人做排行网站江苏建设教育网官网入口
  • 网站开发流程有几个阶段桂林设计单位资质升级网站
  • 电影网站制作自我介绍网页设计代码
  • 网站建设项目延期验收申请莱芜论坛莱芜话题吕金梦
  • 茂名仿站定制模板建站一套完整的室内设计图
  • 单位建设网站的意义网站开发技术概况
  • 阅文集团旗下哪个网站做的最好ftp 转 wordpress
  • 河南城乡建设网站网站建设方案策划书前言
  • python适合大型网站开发吗wordpress传输失败
  • 网站建设的总结少女免费观看完整电视电影
  • 广州做护肤品的网站河南省人事考试网
  • 网站开发需要提供哪些东西东阿聊城做网站的公司
  • 大连哪家网站做的好南山区
  • 贸易公司网站制作做心理咨询可以在哪些网站发贴
  • 网站建设预付款如何付wordpress 判断用户
  • 网站排名软件包年做网站简单
  • 网站建设费用做无形资产怎么做饲料电商网站
  • 上海广告公司招聘信息网站页面优化方法
  • 中国建筑集团网站建设企业网站步骤
  • 花市小说网站那里进网站主题包括
  • 微网站开发协议html简单网页代码课程表
  • 淮安网站建设工作室网站开发哪一种语言好