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. gozmq的安装与使用

    1. 安装zmq 下载Windows版安装或linux版本并执行安装命令: tar zxvf zeromq-4.1.6.tar.gz cd zeromq-4.1.6 ./configure make ...

  2. 【转】Reason: The specified virtual disk needs repair.

    转自http://tscsh.blog.163.com/blog/static/200320103201393095248828/电脑突然断电后,或者非正常关机,ubuntu打不开了,出现错误提示 打 ...

  3. 查询SQlServer相同表结构差异

    USE [数据库名] GO ); ); ); ); SET @DataName1='库1'; SET @DataName2='库2'; SET @TableName1='表1'; SET @Table ...

  4. html2canvas - 项目中遇到的那些坑点汇总(更新中...)

    截图模糊    原理就是讲canvas画布的width和height放大两倍. 后来学习canvas的时候,才了解到这种写法不同于css的宽高设置, 因为css里的只是展示画布显示的大小,不像这样是c ...

  5. Elasticsearch 学习之配置文件详解

    Elasticsearch配置文件##################### Elasticsearch Configuration Example ##################### # # ...

  6. 熟悉使用ConfigParser库读写配置文件

    Python的配置文件 配置文件 setting.ini文件是一个纯文本 [DataBase1] username = admin passwors = root [DataBase2] hostna ...

  7. 【BZOJ5146】有趣的概率 概率+组合数(微积分)

    [BZOJ5146]有趣的概率 Description "可爱的妹子就像有理数一样多,但是我们知道的,你在数轴上随便取一个点取到有理数的概率总是0,"芽衣在床上自顾自的说着这句充满 ...

  8. Call removeView() on the child's parent first

    extends:http://stackoverflow.com/questions/6526874/call-removeview-on-the-childs-parent-first Except ...

  9. Unity3D笔记 愤怒的小鸟<五> 小鸟动画+Unity3D如何设置断点调式

    前言:实现小鸟的动画,之前吐槽过js写U3D,就改成了C#来写,没想到遇到问题了. 实现的效果 using UnityEngine; using System.Collections; /// < ...

  10. wpgcms---banner图怎么调用

    使用wpgcms调用banner图,首先新建应用为 自定义应用,然后添加对应的字段信息,例如: 具体调用方式: <ul> {% set bannerlist = wpg.appdata.g ...