Java 多线程整理
来源:互联网 发布:php滚动加载 编辑:程序博客网 时间:2024/06/05 05:53
本文主要写的是Java中线程安全相关的问题,仅仅能作为面试时参考级别或理解一些概念。
主要原因如下:
1)并发“具有可论证性的确定性,但实际上具有不确定性。” ——Java编程思想。
2)涉及多线程编程时只投入一个人是危险的。
面试官经常问的一个问题:
HashTable和HashSet区别是什么? 答:HashTable线程安全类,HashSet线程不安全。
要想HashSet在多线程下安全使用该如何? 答:通过java.util.Collections类的synchronizedSet()方法返回线程安全的Set。
如果项目使用的是JDK1.5+的话根据下面的内容回答会更好,
Java5新追加了执行器Executor,用来管理Thread对象。以下是Executor简单应用。
// 有多中Executor,SingleThreadExecutor
ExecutorService exec = Executors.newCachedThreadPool();
// 执行一个
exec.execute(new Runnable());
// 此executor不再接受线程开启命令
executor.shutdown();
Java5新追加的集合类ConcurrentHashMap,是在多线程下首选的Map,List,Set的高效版本应该也有,可以参考Java编程思想。
ThreadLocal: 线程本地变量,参考 http://javapapers.com/core-java/threadlocal/ (博主长相是印度人,他的文章很不错)
其他和线程安全相关的类:
StringBuffer,StringBuilder。他们都继承与同一个类,StringBuffer方法都做了同步。
Log4J核心是通过一个HashTable管理的,估是线程安全的。
关于同步方法:
Java运行时一些数据是多个线程共享的,其中堆和方法区是共享的,Java需要2种多线程访问数据进行协调:
保存在堆中的实例变量。
保存在方法区中的实例变量。
程序不需要协调保存在Java栈中的局部变量。
同步方法或同步代码块区别参考第一条 http://www.ibm.com/developerworks/cn/java/j-5things15/index.html?ca=drs-
WEB环境(SSH)下多线程
Struts2每一次请求
DAO单例:(Tomcat要求这么做)
最后附上当启动Tomcat时的JDK线程图,至于里面线程具体信息我也不清楚,希望各位指教。
- Java 多线程整理
- Java多线程整理
- java多线程整理
- Java多线程知识整理
- Java多线程目录整理
- java 多线程归纳整理
- java多线程知识点整理
- Java多线程基础知识整理
- Java多线程知识整理
- java多线程相关问题整理
- java基础整理の多线程
- java多线程之 wait(),notify(),notifyAll() 整理
- java基础整理十一(多线程1)
- java基础整理十二(多线程2)
- java socket多线程使用-整理篇
- 笔记整理(java基础八-----多线程)
- Java多线程整理(一)-基本知识
- JAVA学习笔记整理八(多线程)
- 测试题(星号版)自己完成的答案(1-12)
- 变量运算符练习Test2
- C++中的C_str()函数用法
- HDU 1073 Online Judge
- 测试题(星号版)自己完成的答案(13-22)
- Java 多线程整理
- 2-3-2 帮助中有的几类函数
- 变量运算符练习Test3
- 变量运算符练习Test4
- 10个最“优秀”的代码注释
- WinForm生成不规则窗体
- 变量运算符练习Test5
- Iframe中session为空的解决办法
- 变量运算符练习Test6