
线程并发
文章平均质量分 51
retacn
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
多线程学习笔记三
/** * 两个线程进行数据交换 * * @time 上午11:19:36 * @author retacn yue * @Email [email protected] */ @SuppressWarnings("unchecked") public class ExchangerTest { /** * @param args */ publi原创 2012-09-04 11:06:38 · 648 阅读 · 0 评论 -
并发库学习笔记四
ConcurrentHashMap并没有实现Lock-Free,只是使用了分离锁的办法使得能够支持多个writer开发,但是他需要更多的内存同样的思路用于更新数据库----乐观锁 publicclassSequenceDao{ publicbooleancompareAndSet(Stringname,intvalue,intexpect){ Map<String,Object>...2012-09-28 16:42:00 · 88 阅读 · 0 评论 -
并发库学习笔记三
Synchronized是lock的一种简化实现,一个lock可以应对多个condition 而synchronized把lock和condiiton合并了,一个synchronizedLock 只对应一个condition在jdk中他们的效率差不多 注:不要在lock和condition上使用waitnotifynotifyAll方法 使用AtomicInteger cla...2012-09-28 16:40:00 · 94 阅读 · 0 评论 -
并发库学习笔记二
阻塞队列(生产者和消费者开发模式) 三种常用的阻塞队 ArrayBlockingQueue<T>; LinkedBlockingQueue<T>; SynchronousQueue<T> //在队列满时被阻塞 ArrayBlockingQueue<String>arrayBlockingQueue=newArrayBlockingQ...2012-09-28 16:38:00 · 84 阅读 · 0 评论 -
并发库学习笔记一
新建线程并启动的几种方法: 1 privateThreadthread=newThread("myThread"); Thread.start(); 2 privateclassmyThreadextendsThread{ @Override publicvoidrun(){ } } myThreadthread=newmyThread().start(); 3 priva...2012-09-28 16:37:00 · 94 阅读 · 0 评论 -
多线程学习笔记四
/** * 线程范围内的数据共享 * * 应用场景:减少库存量,增加流水账和修改总账 ,这几个操作要在同一个事务中, 事务需要放在线程范围内 * * * @time 上午10:10:13 * @author retacn yue * @Email [email protected] */ public class ThreadLocalTest {/*** @param a...2012-09-04 11:08:00 · 94 阅读 · 0 评论 -
多线程学习笔记三
/** * 两个线程进行数据交换 * * @time 上午11:19:36 * @author retacn yue * @Email [email protected] */ @SuppressWarnings("unchecked") public class ExchangerTest {/*** @param args*/public static void main(...2012-09-04 11:06:00 · 86 阅读 · 0 评论 -
多线程学习笔记二
/** * 传统线程 * * @time 下午06:15:19 * @author retacn yue * @Email [email protected] */ public class TraditionalThread {/*** 多线程并发学习** @param args*/public static void main(String[] args) {// java5...2012-09-04 11:05:00 · 80 阅读 · 0 评论 -
多线程学习笔记一
/** * 子线程循环10次,主线程100次 如此循环50次; * * @time 上午11:45:17 * @author retacn yue * @Email [email protected] */ public class ThreadTest {/*** @param args*/public static void main(String[] args) ...2012-09-04 11:03:00 · 99 阅读 · 0 评论 -
并发库学习笔记三
Synchronized 是lock的一种简化实现,一个lock可以应对多个condition 而synchronized把lock和condiiton合并了,一个synchronized Lock 只对应一个condition 在jdk中他们的效率差不多 注:不要在lock和condition上使用wait notify notifyAll方法 使用AtomicInteger c原创 2012-09-28 16:40:59 · 587 阅读 · 0 评论 -
并发库学习笔记二
阻塞队列 (生产者和消费者开发模式) 三种常用的阻塞队 ArrayBlockingQueue; LinkedBlockingQueue; SynchronousQueue // 在队列满时被阻塞 ArrayBlockingQueue arrayBlockingQueue = new ArrayBlockingQueue(19); try { arrayBlockingQue原创 2012-09-28 16:38:30 · 515 阅读 · 0 评论 -
并发库学习笔记一
新建线程并启动的几种方法: 1 private Thread thread=new Thread("myThread"); Thread.start(); 2 private class myThread extends Thread { @Override public void run() { } } myThread thread=new myThread().sta原创 2012-09-28 16:37:36 · 412 阅读 · 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 · 569 阅读 · 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 · 783 阅读 · 0 评论 -
多线程学习笔记四
/** * 线程范围内的数据共享 * * 应用场景:减少库存量,增加流水账和修改总账 ,这几个操作要在同一个事务中, 事务需要放在线程范围内 * * * @time 上午10:10:13 * @author retacn yue * @Email [email protected] */ public class ThreadLocalTest {原创 2012-09-04 11:08:03 · 560 阅读 · 0 评论 -
多线程学习笔记二
/** * 传统线程 * * @time 下午06:15:19 * @author retacn yue * @Email [email protected] */ public class TraditionalThread { /** * 多线程并发学习 * * @param args */ public static void main(原创 2012-09-04 11:05:42 · 444 阅读 · 0 评论 -
多线程学习笔记一
/** * 子线程循环10次,主线程100次 如此循环50次; * * @time 上午11:45:17 * @author retacn yue * @Email [email protected] */ public class ThreadTest { /** * @param args */ public static void main(S原创 2012-09-04 11:03:47 · 367 阅读 · 0 评论 -
并发库学习笔记五
并发流程控制CountDownLatch publicvoidtest(){ finalintCOUNT=10; finalCountDownLatchcountDownLatch=newCountDownLatch(COUNT); for(inti=0;i<COUNT;i++){ Threadthread=newThread("workThread"+i){ ...2012-09-28 16:43:00 · 142 阅读 · 0 评论