线程安全
xiaofengnh
这个作者很懒,什么都没留下…
展开
-
struts/spring 单例是否线程安全的
线程不安全的。原因如下: 第一点,先理解为何线程不安全 1 struts1的action是单例的,所以存在线程安全问题 2 spring默认的注入也是单例的,所以也存在线程安全问题 先理解为何会有线程不安全的问题,比如有一个类Person 有个属性是name,线程1修改了这个属性的name,要进行存入数据库操作的时候,线程2又修改了这个name,这样线程1就存入了一个线程2修改过的数据转载 2013-12-18 00:17:44 · 505 阅读 · 0 评论 -
JAVA多线程实现的三种方式
JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。 1、继承Thread类实现多线程 继承Thread类的方法尽管被我列为一种多线程实现方式,但Thread本质上也是实现了Runnable接口的原创 2015-10-25 19:28:41 · 245 阅读 · 0 评论 -
Java并发编程:深入剖析ThreadLocal
想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两个应用场景。 以下是本文目录大纲: 一.对ThreadLocal的理解 二.深入解析ThreadLocal类转载 2015-09-21 16:55:16 · 283 阅读 · 0 评论 -
java多线程之生产者消费者经典问题
今天研究了一下java多线程,顺便写了一下多线程中的经典问题-----生产者消费者经典问题,参照了网上的各种写法之后自己写了一个,如下所示 [java] view plaincopyprint? "font-size: 14px;">/**生产者消费者问题,涉及到几个类 * 第一,这个问题本身就是一个类,即主类 * 第二,既然是生产者、消费者,那么生产者类和转载 2015-10-25 20:40:00 · 274 阅读 · 0 评论 -
ThreadPoolExecutor线程池参数说明
之前做的一个项目,由于消息量太大,为缓解消息发送服务器的压力,将接收消息由之前的同步处理改成了异步处理,即收到一条消息交给一个线程处理,马上返回接收成功给服务器。这样就涉及到多线程和线程池,在做压力测试时总感觉这个线程池的状态不对,当前线程数总上不去,原来忽略了一个逻辑,就是当前线程数到达核心线程数时,后面的请求就会加到任务队列里,任务队列满了之后才会去创建新的线程,一直达到允许的最大线程数为止。转载 2014-09-29 15:53:30 · 498 阅读 · 0 评论 -
java中关键字volatile的作用
用在多线程,同步变量。 线程为了提高效率,将某成员变量(如A)拷贝了一份(如B),线程中对A的访问其实访问的是B。只在某些动作时才进行A和B的同步。因此存在A和B不一致的情况。volatile就是用来避免这种情况的。volatile告诉jvm, 它所修饰的变量不保留拷贝,直接访问主内存中的(也就是上面说的A) =========================分割线1===========转载 2014-07-09 22:38:55 · 361 阅读 · 0 评论 -
探讨Java中static synchronized和synchronized
synchronized提供内部锁的机制,防止其它线程同时进入synchronized的代码块。synchronized由两部分组成:1.锁对象的引用;2.锁保护的代码块。 对锁对象引用的不同,是static synchronized和synchronized最大的区别: 1 public class SynchronizedTester { 2 3 /* 4转载 2014-03-10 23:01:03 · 334 阅读 · 0 评论 -
Java多线程-工具篇-BlockingQueue
前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。 认识BlockingQueue 阻塞队列,顾名思义,首先它是一个队列,而转载 2014-03-03 18:17:51 · 320 阅读 · 0 评论 -
java 多线程 CountDownLatch用法
CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。 主要方法 public CountDownLatch(int count); public void countDown(); public void await() throws InterruptedException 构造方法参数指定转载 2014-02-10 18:36:49 · 430 阅读 · 0 评论 -
JDK线程池的使用
package cn.gaialine.threadpool; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concur转载 2013-12-18 18:14:46 · 402 阅读 · 0 评论 -
两种分布式锁实现方案
http://rdc.gleasy.com/%E4%B8%A4%E7%A7%8D%E5%88%86%E5%B8%83%E5%BC%8F%E9%94%81%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%A1%881.html https://blog.csdn.net/xiongyouqiang/article/details/79387829 htt...转载 2016-07-13 20:08:03 · 320 阅读 · 0 评论