java多线程
halfh
行成于思毁于随
展开
-
生产者和消费者
package com.brendan.cn.pattern.produceConsumer;public class Worker implements Runnable { private Warehouse warehouse; public Worker(Warehouse warehouse) { this.warehouse = warehouse;原创 2017-08-14 00:20:17 · 315 阅读 · 0 评论 -
ArrayBlockingQueue
public class TestArrayBlockingQueue { public static void main(String[] args) throws InterruptedException { BlockingQueue<Integer> queue = new ArrayBlockingQueue<Integer>(3); for(int i原创 2017-10-23 20:10:33 · 164 阅读 · 0 评论 -
cyclicBarrier
import java.util.concurrent.BrokenBarrierException;import java.util.concurrent.CyclicBarrier;public class TestCyclicBarrier { public static void main(String[] args) throws InterruptedException, Br原创 2017-10-23 20:07:09 · 326 阅读 · 0 评论 -
deadLock
public class DeadLock { private static Object o1 = new Object(); private static Object o2 = new Object(); public static void main(String[] args) { new Thread(()->{原创 2017-10-23 20:04:49 · 258 阅读 · 0 评论 -
jion
public class TestJoin { public static void main(String[] args) { MyThread2 t1 = new MyThread2("TestJoin"); t1.start(); try { t1.join(); //join()合并线程,子线程运行完之后,主线程才原创 2017-10-23 20:03:47 · 497 阅读 · 0 评论 -
java中的队列举例
java中的队列是BlockingQueue ,他的最常见的实现是LinkedBlockingQueue 和 ArrayBlockingQueue,他们之间的区别是前者对数据的操作用到了两把锁,后者只用了一把锁,前者的并发要高。第一个例子使用了offer和poll 方法的非阻塞队列生产者public class Producer implements Runnable { public Pr原创 2017-09-19 21:35:01 · 515 阅读 · 0 评论 -
synchronous错误使用
i++后对象变化了,所以会出现错误的结果。package com.brendan.cn.concurrent;import java.net.InetAddress;/*************************************************************** * Created by martin on 2017/9/29. *****************原创 2017-09-29 21:55:20 · 956 阅读 · 0 评论 -
java中创建线程的两种方式
package com.brendan.cn.concurrent;public class TestThread { public static void main(String[] args) { //第一种方式 Thread thread = new Thread(){ @Override public voi原创 2017-09-20 20:54:30 · 251 阅读 · 0 评论 -
phaser模拟百米赛跑
package com.brendan.cn.concurrent.match;import java.util.concurrent.Phaser;public class Match { // 模拟了100米赛跑,10名选手,只等裁判一声令下。当所有人都到达终点时,比赛结束。 public static void main(String[] args) throws Interru原创 2017-09-28 21:57:15 · 471 阅读 · 0 评论 -
限时等待锁
package com.brendan.cn.concurrent;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.ReentrantLock;public class TimeLock implements Runnable { public static ReentrantLock loc原创 2017-08-14 00:56:37 · 315 阅读 · 0 评论 -
重入锁 (替换synchronized)
package com.brendan.cn.concurrent;import java.util.concurrent.locks.ReentrantLock;public class ReenterLock implements Runnable { public static ReentrantLock lock = new ReentrantLock(); public s原创 2017-08-13 00:14:11 · 343 阅读 · 0 评论 -
phaser
创建三个线程在三个目录里查找一天以内修改过的以log结尾的文件并打印出来, 线程与线程之间通过phaser来保持同步点package com.brendan.cn.concurrent.phaser;import java.io.File;import java.util.ArrayList;import java.util.Date;import java.util.List;impor转载 2017-10-23 20:51:43 · 231 阅读 · 0 评论