精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (2)
|
|
---|---|
作者 | 正文 |
发表时间:2012-03-13
Alrale 写道 http://www.iteye.com/topic/806990
看看这个吧 我也是上次写东西时发现了一个技术点,没想到这么多事情嘞 |
|
返回顶楼 | |
发表时间:2012-03-13
singleant 写道 线程安全取决于数据是否有被多线程共享。
和变量类型关系不大。 局部变量也是相对的。 另外线程安全除了Synchronized之外还有很多选择: 如楼主的那个例子, int locals = 0;这种简单的,可以通过定义 AtomicInteger locals = new AtomicInteger(0);来替换,实现线程安全。Atomic基于volitale和CAS实现轻量级乐观锁。 还有juc里的Lock序列的高级锁等可用。 现在已经进阶到了锁,回去研究一下再回来,等我! |
|
返回顶楼 | |
发表时间:2012-03-16
现在博客月度前40了!
|
|
返回顶楼 | |
发表时间:2012-03-19
我现在经常用的就是在 service 类中获取比如当前登录用户等request中的信息。 public class AppHolder { private static final ThreadLocal requestHolder = new ThreadLocal(); public AppHolder() { } public static HttpServletRequest getRequest() { return (HttpServletRequest)requestHolder.get(); } public static HttpSession getSession() { HttpSession session = null; HttpServletRequest request = (HttpServletRequest)requestHolder.get(); if(null != request) session = request.getSession(true); return session; } public static void setRequest(HttpServletRequest request) { requestHolder.set(request); } public static ThreadLocal getRequestHolder() { return requestHolder; } } |
|
返回顶楼 | |
发表时间:2012-03-19
forcer521 写道 我现在经常用的就是在 service 类中获取比如当前登录用户等request中的信息。 public class AppHolder { private static final ThreadLocal requestHolder = new ThreadLocal(); public AppHolder() { } public static HttpServletRequest getRequest() { return (HttpServletRequest)requestHolder.get(); } public static HttpSession getSession() { HttpSession session = null; HttpServletRequest request = (HttpServletRequest)requestHolder.get(); if(null != request) session = request.getSession(true); return session; } public static void setRequest(HttpServletRequest request) { requestHolder.set(request); } public static ThreadLocal getRequestHolder() { return requestHolder; } } 不知道和我们讨论的有什么直接联系? |
|
返回顶楼 | |
发表时间:2012-03-19
ThreadLocal 应用的例子啊
|
|
返回顶楼 | |
发表时间:2012-03-19
forcer521 写道 ThreadLocal 应用的例子啊
这例子来的有点突然。。。。 |
|
返回顶楼 | |
发表时间:2012-03-20
cuisuqiang 写道 singleant 写道 线程安全取决于数据是否有被多线程共享。
和变量类型关系不大。 局部变量也是相对的。 另外线程安全除了Synchronized之外还有很多选择: 如楼主的那个例子, int locals = 0;这种简单的,可以通过定义 AtomicInteger locals = new AtomicInteger(0);来替换,实现线程安全。Atomic基于volitale和CAS实现轻量级乐观锁。 还有juc里的Lock序列的高级锁等可用。 现在已经进阶到了锁,回去研究一下再回来,等我! 关于锁的使用,http://cuisuqiang.iteye.com/blog/1458754 |
|
返回顶楼 | |
发表时间:2012-03-23
看到这个标题,我第一个想到的竟然是张孝祥
|
|
返回顶楼 | |
发表时间:2012-03-23
xpeng71 写道 看到这个标题,我第一个想到的竟然是张孝祥
你不至于吧,张老师已经走了! |
|
返回顶楼 | |