![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线程并发
文章平均质量分 51
retacn
这个作者很懒,什么都没留下…
展开
-
多线程学习笔记三
/** * 两个线程进行数据交换 * * @time 上午11:19:36 * @author retacn yue * @Email zhenhuayue@sina.com */@SuppressWarnings("unchecked")public class ExchangerTest {/*** @param args*/publi原创 2012-09-04 11:06:38 · 625 阅读 · 0 评论 -
并发库学习笔记四
ConcurrentHashMap并没有实现Lock-Free,只是使用了分离锁的办法使得能够支持多个writer开发,但是他需要更多的内存同样的思路用于更新数据库----乐观锁publicclassSequenceDao{publicbooleancompareAndSet(Stringname,intvalue,intexpect){Map<String,Object>...2012-09-28 16:42:00 · 70 阅读 · 0 评论 -
并发库学习笔记三
Synchronized是lock的一种简化实现,一个lock可以应对多个condition而synchronized把lock和condiiton合并了,一个synchronizedLock只对应一个condition在jdk中他们的效率差不多注:不要在lock和condition上使用waitnotifynotifyAll方法 使用AtomicIntegercla...2012-09-28 16:40:00 · 68 阅读 · 0 评论 -
并发库学习笔记二
阻塞队列(生产者和消费者开发模式)三种常用的阻塞队ArrayBlockingQueue<T>;LinkedBlockingQueue<T>;SynchronousQueue<T> //在队列满时被阻塞ArrayBlockingQueue<String>arrayBlockingQueue=newArrayBlockingQ...2012-09-28 16:38:00 · 57 阅读 · 0 评论 -
并发库学习笔记一
新建线程并启动的几种方法:1privateThreadthread=newThread("myThread");Thread.start();2privateclassmyThreadextendsThread{@Overridepublicvoidrun(){}}myThreadthread=newmyThread().start();3priva...2012-09-28 16:37:00 · 70 阅读 · 0 评论 -
多线程学习笔记四
/*** 线程范围内的数据共享** 应用场景:减少库存量,增加流水账和修改总账 ,这几个操作要在同一个事务中, 事务需要放在线程范围内*** @time 上午10:10:13* @author retacn yue* @Email zhenhuayue@sina.com*/public class ThreadLocalTest {/*** @param a...2012-09-04 11:08:00 · 70 阅读 · 0 评论 -
多线程学习笔记三
/*** 两个线程进行数据交换** @time 上午11:19:36* @author retacn yue* @Email zhenhuayue@sina.com*/@SuppressWarnings("unchecked")public class ExchangerTest {/*** @param args*/public static void main(...2012-09-04 11:06:00 · 64 阅读 · 0 评论 -
多线程学习笔记二
/*** 传统线程** @time 下午06:15:19* @author retacn yue* @Email zhenhuayue@sina.com*/public class TraditionalThread {/*** 多线程并发学习** @param args*/public static void main(String[] args) {// java5...2012-09-04 11:05:00 · 54 阅读 · 0 评论 -
多线程学习笔记一
/*** 子线程循环10次,主线程100次 如此循环50次;** @time 上午11:45:17* @author retacn yue* @Email zhenhuayue@sina.com*/public class ThreadTest {/*** @param args*/public static void main(String[] args) ...2012-09-04 11:03:00 · 75 阅读 · 0 评论 -
并发库学习笔记三
Synchronized 是lock的一种简化实现,一个lock可以应对多个condition而synchronized把lock和condiiton合并了,一个synchronized Lock只对应一个condition 在jdk中他们的效率差不多注:不要在lock和condition上使用wait notify notifyAll方法使用AtomicIntegerc原创 2012-09-28 16:40:59 · 563 阅读 · 0 评论 -
并发库学习笔记二
阻塞队列 (生产者和消费者开发模式)三种常用的阻塞队ArrayBlockingQueue;LinkedBlockingQueue;SynchronousQueue// 在队列满时被阻塞ArrayBlockingQueue arrayBlockingQueue = new ArrayBlockingQueue(19);try {arrayBlockingQue原创 2012-09-28 16:38:30 · 487 阅读 · 0 评论 -
并发库学习笔记一
新建线程并启动的几种方法:1 private Thread thread=new Thread("myThread"); Thread.start();2private class myThread extends Thread {@Overridepublic void run() {}}myThread thread=new myThread().sta原创 2012-09-28 16:37:36 · 388 阅读 · 0 评论 -
并发库学习笔记五
并发流程控制 CountDownLatch public void test() {final int COUNT = 10;final CountDownLatch countDownLatch = new CountDownLatch(COUNT);for (int i = 0; i Thread thread = new Thread("work Thread"原创 2012-09-28 16:43:34 · 538 阅读 · 0 评论 -
并发库学习笔记四
ConcurrentHashMap并没有实现Lock-Free,只是使用了分离锁的办法使得能够支持多个writer开发,但是他需要更多的内存同样的思路用于更新数据库----乐观锁public class SequenceDao {public boolean compareAndSet(String name, int value, int expect) {Map parameter原创 2012-09-28 16:42:18 · 745 阅读 · 0 评论 -
多线程学习笔记四
/** * 线程范围内的数据共享 * * 应用场景:减少库存量,增加流水账和修改总账 ,这几个操作要在同一个事务中, 事务需要放在线程范围内 * * * @time 上午10:10:13 * @author retacn yue * @Email zhenhuayue@sina.com */public class ThreadLocalTest {原创 2012-09-04 11:08:03 · 534 阅读 · 0 评论 -
多线程学习笔记二
/** * 传统线程 * * @time 下午06:15:19 * @author retacn yue * @Email zhenhuayue@sina.com */public class TraditionalThread {/*** 多线程并发学习* * @param args*/public static void main(原创 2012-09-04 11:05:42 · 418 阅读 · 0 评论 -
多线程学习笔记一
/** * 子线程循环10次,主线程100次 如此循环50次; * * @time 上午11:45:17 * @author retacn yue * @Email zhenhuayue@sina.com */public class ThreadTest {/*** @param args*/public static void main(S原创 2012-09-04 11:03:47 · 344 阅读 · 0 评论 -
并发库学习笔记五
并发流程控制CountDownLatchpublicvoidtest(){finalintCOUNT=10;finalCountDownLatchcountDownLatch=newCountDownLatch(COUNT); for(inti=0;i<COUNT;i++){Threadthread=newThread("workThread"+i){ ...2012-09-28 16:43:00 · 115 阅读 · 0 评论