- 浏览: 641632 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (105)
- Python (3)
- Oracle (6)
- Tomcat (3)
- Google Chromium (4)
- Java (38)
- CSS (1)
- Eclipse (3)
- 随笔 (0)
- Xml (2)
- scala (2)
- MOVE (1)
- Redis (5)
- activiti (0)
- facebook (0)
- Idea (0)
- Cloud Foundry (3)
- JGoodies (0)
- Ruby (0)
- linux (1)
- Proto.tar.gz (0)
- svg (1)
- d3.js (1)
- javascript (1)
- gradle (1)
- R (1)
- grails (4)
- jenkins (2)
- svn (1)
最新评论
-
qq860067700:
保存以后我怎么模糊查询?怎么批量删除 字节化之前有前缀 pre ...
Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式) -
zlele:
你好,这个遍历文件的结果是乱序的吗
Python 用 os.walk 遍历目录 -
mdsp25xhm:
使用protobuf吧,解析效率比java序列化性能高许多
Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式) -
josico:
试试看 这样是不行的 alanland 写道josico 写道 ...
Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式) -
alanland:
josico 写道redis中 存的是这么一个value,并且 ...
Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式)
try {
// 通过默认配置文件hibernate.cfg.xml创建SessionFactory
sessionFactory = new Configuration().configure().buildSessionFactory();
} catch (Throwable ex) {
log.error("初始化SessionFactory失败!", ex);
throw new ExceptionInInitializerError(ex);
}
}
//创建线程局部变量session,用来保存Hibernate的Session
public static final ThreadLocal session = new ThreadLocal();
* 获取当前线程中的Session
* @return Session
* @throws HibernateException
*/
public static Session currentSession() throws HibernateException {
Session s = (Session) session.get();
// 如果Session还没有打开,则新开一个Session
if (s == null) {
s = sessionFactory.openSession();
session.set(s); //将新开的Session保存到线程局部变量中
}
return s;
}
//获取线程局部变量,并强制转换为Session类型
Session s = (Session) session.get();
session.set(null);
if (s != null)
s.close();
}
}
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2007-11-23
* Time: 10:45:02
* 学生
*/
public class Student {
private int age = 0; //年龄
return this.age;
}
this.age = age;
}
}
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2007-11-23
* Time: 10:53:33
* 多线程下测试程序
*/
public class ThreadLocalDemo implements Runnable {
//创建线程局部变量studentLocal,在后面你会发现用来保存Student对象
private final static ThreadLocal studentLocal = new ThreadLocal();
ThreadLocalDemo td = new ThreadLocalDemo();
Thread t1 = new Thread(td, "a");
Thread t2 = new Thread(td, "b");
t1.start();
t2.start();
}
accessStudent();
}
* 示例业务方法,用来测试
*/
public void accessStudent() {
//获取当前线程的名字
String currentThreadName = Thread.currentThread().getName();
System.out.println(currentThreadName + " is running!");
Random random = new Random();
int age = random.nextInt(100);
System.out.println("thread " + currentThreadName + " set age to:" + age);
Student student = getStudent();
student.setAge(age);
System.out.println("thread " + currentThreadName + " first read age is:" + student.getAge());
try {
Thread.sleep(500);
}
catch (InterruptedException ex) {
ex.printStackTrace();
}
System.out.println("thread " + currentThreadName + " second read age is:" + student.getAge());
}
//获取本地线程变量并强制转换为Student类型
Student student = (Student) studentLocal.get();
//线程首次执行此方法的时候,studentLocal.get()肯定为null
if (student == null) {
//创建一个Student对象,并保存到本地线程变量studentLocal中
student = new Student();
studentLocal.set(student);
}
return student;
}
}
thread a set age to:76
b is running!
thread b set age to:27
thread a first read age is:76
thread b first read age is:27
thread a second read age is:76
thread b second read age is:27
发表评论
-
jdk7透明异形窗体
2014-04-10 20:42 2129在jdk6中设置透明异形窗体的方法与jdk7方法的比较 ... -
Linux 浏览器运行applet相关
2013-09-10 09:18 1353首先 有这样一个页面地址可以检测你浏览器当前 java 的环 ... -
joda-time 简介
2013-06-27 13:16 1251基于java的项目,最大 ... -
Joda-Time 简介
2013-06-27 11:00 1767在编写企业应用程序 ... -
JetBrains开源其Kotlin语言,基于JVM的新编程语言
2012-08-22 08:33 1922JetBrains开源其Kotlin语言,基于JVM的 ... -
Linux 下 Tomcat 远程调试的问题
2012-08-07 10:15 1516之前远程调试一直是写一个debug的脚本,如下 #!/ ... -
如何编写jnlp文件
2010-06-27 13:29 5243jnlp就是Java Network Launch Proto ... -
UML之类图与时序图
2010-06-24 15:06 106531 当一个操作有参 ... -
出色的 “清洁工具” —— 理解 IBM Java 垃圾收集器,第 2 部分: 垃圾收集
2010-06-22 16:16 1058出色的 “清洁工具” —— 理解 IBM Java 垃圾 ... -
不要忘记内存
2010-06-22 16:15 1238不要忘记内存 如何监控 Java 应用程序的 Windo ... -
Java 理论和实践: 安全构造技术
2010-06-22 16:15 1258Java 理论和实践: 安全构造技术 在构造期 ... -
Java 技术,IBM 风格: 垃圾收集策略,第 2 部分
2010-06-22 16:14 1134Java 技术,IBM 风格: 垃圾收集策略,第 ... -
关注性能: 谈论垃圾
2010-06-22 16:14 1121关注性能: 谈论垃圾 您知道垃圾收集器在干什么 ... -
垃圾收集器与Java编程
2010-06-22 16:13 1035垃圾收集器与Java编程 ... -
Java 2 引用类使用指南
2010-06-22 16:13 1204Java 2 引用类使用指南 学习如何有效地使用 Sof ... -
优化 Java 垃圾收集的性能
2010-06-22 16:12 1175优化 Java 垃圾收集的性能 如何利用 IBM Jav ... -
Java 理论和实践: 用软引用阻止内存泄漏
2010-06-22 16:11 1032Java 理论和实践: 用软引用阻止内存泄漏 ... -
Java 理论与实践: 用弱引用堵住内存泄漏
2010-06-22 16:11 1320Java 理论与实践: 用弱引用堵住内存泄漏 ... -
Java 理论与实践: 用弱引用堵住内存泄漏
2010-06-22 16:10 1163Java 理论与实践: 用弱引用堵住内存泄漏 ... -
跨越边界: Java 模型以外的类型策略
2010-06-22 16:09 1292跨越边界: Java 模型以外的类型策略 ...
相关推荐
《深入解析java.lang》 Java语言的核心库之一就是`java.lang`包,它包含了Java程序设计中最基础的类和接口,...通过深入研究`java.lang`,我们可以更好地理解Java的内在机制,并能更熟练地运用这些工具来解决问题。
- **并发编程**:深入研究`Thread`类及其相关接口,如`Runnable`、`Callable`等,理解同步机制和锁的概念。 - **异常处理**:学习如何正确地使用异常处理机制,了解自定义异常的创建方法。 总之,Java核心API的学习...
- 为了避免多线程环境中的数据竞争问题,Java提供了多种同步机制,包括`synchronized`关键字、`volatile`关键字、`java.util.concurrent`包中的工具类(如Semaphore、Lock等)以及`java.lang.ThreadLocal`。...
Java的多线程是编程领域中的重要概念,尤其在服务器端开发中,它极大地提高了程序的并发性能。...对于复杂的应用场景,深入研究源码和使用高级工具,如JVisualVM,有助于进一步优化和调试多线程程序。
在Java编程语言中,线程是程序执行的基本单元,它允许程序同时执行多个任务。Java线程的概念对于理解和编写高效、并发的代码至关...同时,深入研究源码有助于更深刻地理解其工作原理,从而在实际开发中做出更优的决策。
- 类似“能不能自己写一个类叫java.lang.String”的问题,考察命名空间的理解。 4. **设计模式**: - 常见的设计模式如工厂模式、单例模式、观察者模式等,面试时可能需要你详细解释某个模式的实现。 - 设计模式...
AppClassLoader是Java应用程序的主要类加载器,它是java.lang.ClassLoader的子类。它负责加载`$JAVA_HOME/lib`目录下的jar文件以及由`java.class.path`系统属性指定的类路径中的类。了解AppClassLoader的内部机制有...
总之,"more_thread"在Java中意味着深入研究和实践多线程技术,包括线程的创建、同步、通信、线程安全以及避免并发问题。熟练掌握这些概念和工具,将有助于开发出高效、健壮的多线程Java应用程序。
本篇文章将深入探讨Java如何实现操作系统中的线程管理和相关知识点。 1. **线程的创建与启动** 在Java中,我们可以使用`Thread`类来创建线程。通过继承`Thread`类并重写`run()`方法,或者实现`Runnable`接口并提供...
在Java中,我们可以使用`SimpleDateFormat`或`DateTimeFormatter`类来解析和格式化日期。对于字符串截取,可能需要用到`substring()`方法或者正则表达式,比如`String.split()`。 格式化则是将日期时间对象转换成...
总的来说,"WaitDie-SGBD"项目是对Java并发控制策略的深入研究和实践,尤其是"WaitDie"算法的应用。通过对Java并发编程的深入理解,我们可以更好地设计和实现高效的并发系统,保证数据的一致性,减少死锁的发生,...