1.  Thread.sleep(long) 和Thread.yield()都是Thread类的静态方法,在调用的时候都是Thread.sleep(long)/Thread.yield()的方式进行调用.    而join()是由线程对象来调用. 2.wait()和notify().notifyAll()  这三个方法都是java.lang.Object的方法! Object 是java.lang.Object,因为天天说Java是面向对象的,所以Object是所有Java对象的超类,都实现Ob…
只有runnable到running时才会占用cpu时间片,其他都会出让cpu时间片.线程的资源有不少,但应该包含CPU资源和锁资源这两类.sleep(long mills):让出CPU资源,但是不会释放锁资源.wait():让出CPU资源和锁资源. 1.  Thread.sleep(long) 和Thread.yield()都是Thread类的静态方法,在调用的时候都是Thread.sleep(long)/  Thread.yield()的方式进行调用.    而join()是由线程对象来调用…
volatile 与 synchronized 的比较(阿里面试官问的问题) ①volatile轻量级,只能修饰变量.synchronized重量级,还可修饰方法 ②volatile只能保证数据的可见性,不能用来同步,因为多个线程并发访问volatile修饰的变量不会阻塞. synchronized不仅保证可见性,而且还保证原子性,因为,只有获得了锁的线程才能进入临界区,从而保证临界区中的所有语句都全部执行.多个线程争抢synchronized锁对象时,会出现阻塞. volatile本质是在告诉…
如果需要想了解相关的TCP的协议结构,底层架构,以及每次面试必问的三次握手,四次挥手可以 参考:TCP协议详解7层和4层解析(美团面试,阿里面试) 尤其是三次握手,四次挥手 具体发送的报文和状态都要掌握 HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议. HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果…
yield: 解释它之前,先简述下,多线程的执行流程:多个线程并发请求执行时,由cpu决定优先执行哪一个,即使通过thread.setPriority(),设置了 线程的优先级,也不一定就是每次都先执行它 yield,表示暂停当前线程,执行其他线程(包括自身线程) 由cpu决定 [java] view plaincopyprint? public class TestYield implements Runnable { public void run() { for (int i = 1; i…
BeanFacotry是spring中比较原始的Factory.如XMLBeanFactory就是一种典型的BeanFactory.原始的BeanFactory无法支持spring的许多插件,如AOP功能.Web应用等. ApplicationContext接口,它由BeanFactory接口派生而来,ApplicationContext包含BeanFactory的所有功能,通常建议比BeanFactory优先 BeanFactory和FactoryBean的区别 BeanFactory是接口,…
Thread类的方法列表:sleep.yield.join用于线程的协作,围绕线程的调度 1.join()等待线程结束:调用join方法的线程,执行结束后才会释放锁.主线程main中调用启动线程(调用start),然后调用该线程的join方法,可以达到主线程等待工作线程运行结束后才执行的效果,并且join要在start之后调用. 2.sleep()暂停执行当前线程,让线程睡眠一段时间:挂起线程一段时间,让出CpU,不释放锁 3.interrupt()中断线程:中断当前线程,抛出异常,释放锁 4.…
Object中的wait.notify.notifyAll,可以用于线程间的通信,核心原理为借助于监视器的入口集与等待集逻辑 通过这三个方法完成线程在指定锁(监视器)上的等待与唤醒,这三个方法是以锁(监视器)为中心的通信方法  除了他们之外,还有用于线程调度.控制的方法,他们是sleep.yield.join方法,他们可以用于线程的协作,他们是围绕着线程的调度而来的  sleep方法 有两个版本的sleep方法,看得出来,核心仍旧是native方法 非native方法只是进行了参数校验,接着仍旧…
Object中的wait.notify.notifyAll,可以用于线程间的通信,核心原理为借助于监视器的入口集与等待集逻辑 通过这三个方法完成线程在指定锁(监视器)上的等待与唤醒,这三个方法是以锁(监视器)为中心的通信方法 除了它们之外,还有用于线程调度.控制的方法,他们是sleep.yield.join方法,他们可以用于线程的协作,他们是围绕着线程的调度而来的 sleep方法 有两个版本的sleep方法,看得出来,核心仍旧是native方法 非native方法只是进行了参数校验,接着仍旧是调…
前不久刚从阿里面试回来,为了这场面试可以说准备了一个半月,做的准备就是刷题和看视频看书充实自己的技术,话说是真难啊,不过还算顺利拿到了offer,有很多面试题我已经记不起来了,这些是当天回家整理好的,下面我来跟大家一起分享一下. 首先我们需要明白一个事实,招聘的一个很关键的因素是在给自己找未来的同事,同级别下要找比自己优秀的人,面试是一个双向选择的过程,人家在面试你的时候,你也在打量这家企业. 一.开场白 简单的介绍一下自己的工作经历与职责,在校或者在工作中主要的工作内容,主要负责的内容:(你的…