![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
Kmayam_Ng
生命是华丽错觉 时间是贼 偷走一切
展开
-
Scoket例子
服务端public class ServerThread extends Thread{ private Socket socket; private static ExecutorService es =Executors.newCachedThreadPool(); public ServerThread(Socket socket) { super()原创 2017-02-28 15:01:40 · 244 阅读 · 0 评论 -
RecursiveTask
任务拆分,不是很懂作用public class CountTask extends RecursiveTask<Long> { private static final int THRESHOLD=1000; private long start; private long end; public CountTask(long start, long end) {原创 2017-02-24 16:48:39 · 951 阅读 · 0 评论 -
Executors
构造函数newFixedThreadPool(int nThreads) ; 创建指定大小的线程池newSingleThreadExecutor();创建一个只有一个线程的线程池newCachedThreadPool() ; 会根据需要创建线程,空闲的线程会被复用newScheduledThreadPool(int corePoolSize) ; 可定时任务,而且能周期运行newSched原创 2017-02-24 15:40:51 · 148 阅读 · 0 评论 -
LockSupport
java 并发包里有很多类,都不知道实际如何应用,所以还是先记录吧public class LockSupportDemo { public static Object u=new Object(); static ChangeObjectThread t1=new ChangeObjectThread("t1"); static ChangeObjectThread t2=原创 2017-02-24 11:30:31 · 240 阅读 · 0 评论 -
CyclicBarrier
循环栅栏,一个可以循环使用的计数器(CountDownLatch)?CyclicBarrier(int parties, Runnable barrierAction);parties:计数器大小,barrierAction:回调方法await(); 每调用一次计数器减1,计数器等于0时如果构造函数使用了barrierAction了会执行这个回调方法本例中循环使用了2次cyclic.await原创 2017-02-24 10:29:07 · 277 阅读 · 0 评论 -
CountDownLatch
CountDownLatch 计数器?倒计数器?new CountDownLatch(5) 可以创建一个指定大小的计数器await() 计数器至0之前,会阻塞所有线程,除非线程被中断调用 countDown()一次计数器将减1public class CountDownLatchDemo implements Runnable{ static CountDownLatch coun原创 2017-02-24 09:14:04 · 168 阅读 · 0 评论 -
ReadWriteLock
读写锁的好处是读写分离了,如果一个程序大量的操作都是读的话会比重入锁快很多读-读:不互斥,不阻塞读-写:互斥,读时不能写,写不能读写-写:互斥 - 如果这段代码使用重入锁可能需要20秒public class ReadWriteLockDemo { private static ReentrantLock lock=new ReentrantLock();//重入锁 pr原创 2017-02-23 23:19:42 · 227 阅读 · 0 评论 -
Semaphore
Semaphore 可以被多个线程获得许可同时访问某一资源public class SemaphoreDemo implements Runnable { Semaphore semp=new Semaphore(5);//可以同时被5个线程获得访问许可 @Override public void run() { try { semp.ac原创 2017-02-23 22:36:05 · 184 阅读 · 0 评论 -
ReentrantLock
ReentrantLock 是一个可重入锁。顾名思义它可以被同一个线程重复获取,曾几何时是synchronize代替品几个重要的方法lock() :获取锁lockInterruptibly() :获取锁优先响应中断tryLock() :尝试获取锁,成功返回true,失败false。该方法不等待立即返回tryLock(long time,TimeUnit unit) :指定时间内尝试获取锁u原创 2017-02-23 21:29:33 · 176 阅读 · 0 评论 -
我所知道的高并发
线程的生命周期NEW(新建状态)RUNNABLE(运行状态)BLOCKED(阻赛状态)WATING(等待状态)TIMED-WAITING(限时等待状态)TERMINATED(终止状态)简单的例子 Thread t1=new Thread(); #NEW t1.start(); 有锁 #RUNNABLE; 没锁#BLOCKED t1.wait();原创 2017-03-02 16:46:11 · 289 阅读 · 0 评论 -
LinkedList
java很多类都源于链表结构设计的,什么是链表结构?我也不知道。。。LinkedList实现链表的结构主要靠一个内部类Node实现private static class Node { E item; //当前节点 Node next; //上一个节点 Node prev; //下一个节点 Node(Node pre原创 2017-02-23 11:27:16 · 163 阅读 · 0 评论 -
ArrayList
ArrayList作为一个新手最常用的集合,一直都没有研究他内部的实现,既然下定决心要写博客,就不管什么大小事都记录一下吧,或许真的有用呢?首先ArrayList有三个构造函数(jdk8) 1. new ArrayList(); //初始化一个空数组 2. new ArrayList(int initialCapacity); //创建指定大小的数组 3. new ArrayList(Collec原创 2017-02-23 11:19:27 · 540 阅读 · 0 评论 -
ConcurrentHashMap
public class KeywordCount { public static Map<String,AtomicLong> KeywordMap=new ConcurrentHashMap<String, AtomicLong>(); static CountDownLatch countdown=new CountDownLatch(4); public static原创 2017-02-26 10:04:59 · 186 阅读 · 0 评论