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. 原:Myeclipse10+Egit+bitbucket实现版本控制

    1.首先在https://bitbucket.org注册账号,建立仓库(repository),这部分有问题的可以看https://confluence.atlassian.com/display/B ...

  2. 《转》win7 安装ujson 出现的“error: Microsoft Visual C++ 9.0 is required. Get it from http://aka.ms/vcpython27”

    本文转载自http://blog.csdn.net/Tilyp/article/details/72842800?locationNum=2&fps=1 我的python环境是 D:\work ...

  3. URL域名获取

    http://"是协议名 "www.test.com"是域名 "是端口号 "aaa"是站点名 "bbb.aspx"是页面 ...

  4. WP8.1学习系列(第十九章)——事件和路由事件概述

    我们将介绍在使用 C#.Visual Basic 或 Visual C++ 组件扩展 (C++/CX) 作为编程语言并使用 XAML 进行 UI 定义时,针对 Windows 运行时应用的事件的编程概 ...

  5. 【前端积累】javascript事件

    什么是事件? 事件是一种异步编程的实现方式,本质上是程序各个组成部分之间的通信.就是文档或浏览器窗口发生的一些特定的交互瞬间(某种动作). 1.事件流 事件流描述的是从页面中接收事件的顺序. 1)事件 ...

  6. css - 文字元素等的美化效果代码汇总(更新中...)

    投影的设置 -webkit-box-reflect: below 0px -webkit-gradient(linear, left top, left bottom, from(transparen ...

  7. Linq 集合处理(Union)

    关于Union的两种情况 一.简单值类型或者string类型处理方式(集合需要实现IEnumerable接口) #region int类型 List<, , , , , }; List<, ...

  8. Makefile Demo案例

    # Comments can be written like this. # File should be named Makefile and then can be run as `make &l ...

  9. ActiveMQ 消息持久化到数据库(Mysql、SQL Server、Oracle、DB2等)

    ActiveMQ具体就不介绍了,直接介绍如何讲ActiveMQ持久化到本地数据库,以SQL Server 2008 R2为例1.下载ActiveMQ后直接解压,我下载的是apache-activemq ...

  10. sencha touch 隐藏滚动条样式的几种方式

    如图,当滚动条显示时不是那么的好看   可以通过以下几种方式来隐藏滚动条,而又不影响滚动效果 1.通过css隐藏 /* 隐藏x方向滚动条 */ .x-scroll-bar-x.active { wid ...