1.ThreadLocal类
     线程级别的局部变量,为每个使用该变量的线程提供一个独立的变量副本,每个线程修改副本时不影响其他线程对象的副本。
   ThreadLocal实例通常作为静态私有字段出现在一个类中。
2.什么情况会抛出InvalidMonitorStateException异常
     调用Object.wait()/Object.notify()/Object.notifyAll()中的任何一个方法时,如果当前线程没有获得该对象的锁,那么就会抛出 IllegalMonitorStateException 的异常
3.Object.wait()和Thread.sleep()
     Object.wait(),在拥有该对象锁的情况下,释放该对象锁。一旦线程重新获取到该对象的锁时,方法返回。
     Object.notify()
     Thread.sleep():让出CPU分配的执行时间,但是不释放该线程拥有的锁。
4.静态方法上使用同步
     如果一个静态方法被申明为synchronized,则等同于在这个方法上调用synchronized(类.class)。
   当一个线程进入同步静态方法中时,其他线程不能进入这个类的任何静态同步方法。
5.死锁
     死锁就是两个或两个以上的线程被无限的阻塞,线程之间相互等待所需资源。
     可能发生在以下情况:
          当两个线程相互调用Thread.join();
          当两个线程使用嵌套的同步块,一个线程占用了另外一个线程必须的锁,互相等待时被阻塞就有可能出现死锁。
6.ReentrantLock:
     等待可中断:tryLock(long timeout,TimeUnit unit)当持有锁的线程长期不释放锁时,正在等待的线程可以选择放弃等待,改为处理其他事情。
     公平锁:多个线程在等待同一个锁时,必须按照申请锁的事件顺序来依次获取锁;而非公平锁在被释放时,任何一个等待锁的线程都有机会获得锁。
Synchronized 中的锁是非公平锁,ReentrantLock 默认也是非公平锁。tryLock()打破公平性,如果该锁没有被另一个线程保持,立即返回true值,并将锁的保持计数器置1。
     锁绑定多个条件:一个ReentrantLock对象可以同时绑定多个Condition对象。
7.线程状态:
     新建 NEW:
     运行 RUNNABLE:
     无限期等待 WAITING:等得其他线程显式地唤醒。
          没有设置 Timeout 参数的 Object.wait();没有设置 Timeout 参数的 Thread.wait()。
     限期等待 TIMED_WAITING:在一定时间之后会由系统自动唤醒。
          设置 Timeout 参数的 Object.wait();设置 Timeout 参数的 Thread.wait();Thread.sleep()方法。
     阻塞 BLOCKED:等待获取一个排它锁,等待进入一个同步区域。
     结束 TERMINATED:

Java多线程面试、笔试方向---后续补充的更多相关文章

  1. Java多线程面试问答

    今天,我们将讨论Java 多线程面试问答. 线程是Java面试问题中的热门话题之一.在这里,我从面试的角度列出了大多数重要的Java多线程面试问题,但是您应该对Java线程有足够的知识来处理后续问题. ...

  2. Java多线程面试15道

    Java 线程面试问题 在任何Java面试当中多线程和并发方面的问题都是必不可少的一部分.如果你想获得任何股票投资银行的前台资讯职位,那么你应该准备很多关于多线程的问题.在投资银行业务中多线程和并发是 ...

  3. JAVA多线程面试必看(转载)

    JAVA多线程和并发基础面试问答 原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-ans ...

  4. 【转】Java多线程面试问题集锦

    如果你即将去一家从事大型系统研发的公司进行Java面试,不可避免的会有多线程相关的问题.下面是一些针对初学者或者新手的问题,如果你已经具备良好的基础,那么你可以跳过本文,直接尝试针对进阶水平的Java ...

  5. Java多线程面试问题

    这篇文章主要是对多线程的面试问题进行总结的,罗列了40个多线程的问题. 1. 多线程有什么用? 一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡.所谓 ...

  6. java 多线程 面试

    1.多线程有什么用? (1)发挥多核CPU的优势: 当前,应用服务器至少也都是双核的,4核.8核甚至16核的也都不少见,如果是单线程的程序,那么在双核CPU上就浪费了50%,在4核CPU上就浪费了75 ...

  7. Java多线程 面试知识点总结1

    一.JMM(Java内存模型) 参考 老刘-JMM面试包过 HollisChuang-Java内存模型 <Java并发编程实战>Chapter-16 <深入理解Java虚拟机> ...

  8. java多线程面试总结

    一:基本知识点 1.1线程与进程区别: 1.进程是资源分配的最小单位,线程是CPU调度的最小单位 2.一个进程由一个或多个线程组成 3.进程之间相互独立,每个进程都有独立的代码和数据空间,但同一进程下 ...

  9. Java多线程面试

    1.说说进程.线程.协程之间的区别 简而言之,进程是程序运行和资源分配的基本单位,一个程序至少有一个进程,一个进程至少有一个线程.进程在执行过程中拥有独立的内存单元,而多个线程共享内存资源,减少切换次 ...

随机推荐

  1. iOS - UITableViewStylePlain与UITableViewStyleGroup样式的对比

    一.UITableViewStylePlain 1.有多段时 段头停留(自带效果) 2.没有中间的间距和头部间距(要想有的重写UITableViewCell \UITableViewHeaderFoo ...

  2. PHP array_merge 隐藏坑。。

    foreach ($list as $k=> $teamGoods){ if($teamGoods['status'] > 4){ $_soldGoods[] = $teamGoods; ...

  3. 【WEB前端系列之CSS】CSS3动画之Animation

    前言 动画使用示例https://github.com/AndyFlower/web-front/tree/master/css3/loading 学习CSS3中Animation之前先来看一个动画特 ...

  4. C# EF中调用 存储过程并调回参数

    TourEntities db = new TourEntities(); List<v_product> v = new List<v_product>(); SqlPara ...

  5. jQuery的回调管理机制

    // 对option的一个缓存,避免每次都需要createOptions,option是创建Callback对象时的传入的参数// 每个option被存入optionsCache中类似于{memory ...

  6. Android adb录制视频和截屏的dos脚本

    以下是本人写的脚本,用于录制android手机视频.截屏 dos脚本文件名:screenrecord.bat @ECHO OFF CLS color 0a set SCREEN_RECORD_SAVE ...

  7. ubuntu14.04 LTS Shutter配置快捷键

    一 shutter设置后的截图 二 shutter配置快捷键 可通过 $shutter --help 查看命令 点击 “应用”按钮,然后:

  8. 题目1447:最短路(Floyd算法)

    题目链接:http://ac.jobdu.com/problem.php?pid=1447 详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus 参考代码: ...

  9. os.walk的用法

    import os path = 'C:\\aa' for root,dirs,files in os.walk(path): print("Root=",root,'dirs=' ...

  10. C语言递归练习

    1.炮弹一样的球状物体,能够堆积成一个金字塔,在顶端有一个炮弹,它坐落在一个4个炮弹组成的层面上,而这4个炮弹又坐落在一个9个炮弹组成的层面上,以此类推.写一个递归函数CannonBall,这个函数把 ...