自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 我所知道的高并发

线程的生命周期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

原创 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

原创 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

原创 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 950

原创 Executors

构造函数 newFixedThreadPool(int nThreads) ; 创建指定大小的线程池 newSingleThreadExecutor();创建一个只有一个线程的线程池 newCachedThreadPool() ; 会根据需要创建线程,空闲的线程会被复用 newScheduledThreadPool(int corePoolSize) ; 可定时任务,而且能周期运行 newSched

2017-02-24 15:40:51 148

原创 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

原创 CyclicBarrier

循环栅栏,一个可以循环使用的计数器(CountDownLatch)? CyclicBarrier(int parties, Runnable barrierAction);parties:计数器大小,barrierAction:回调方法 await(); 每调用一次计数器减1,计数器等于0时如果构造函数使用了barrierAction了会执行这个回调方法 本例中循环使用了2次cyclic.await

2017-02-24 10:29:07 277

原创 CountDownLatch

CountDownLatch 计数器?倒计数器? new CountDownLatch(5) 可以创建一个指定大小的计数器 await() 计数器至0之前,会阻塞所有线程,除非线程被中断 调用 countDown()一次计数器将减1 public class CountDownLatchDemo implements Runnable{ static CountDownLatch coun

2017-02-24 09:14:04 168

原创 ReadWriteLock

读写锁的好处是读写分离了,如果一个程序大量的操作都是读的话会比重入锁快很多 读-读:不互斥,不阻塞 读-写:互斥,读时不能写,写不能读 写-写:互斥 - 如果这段代码使用重入锁可能需要20秒public class ReadWriteLockDemo { private static ReentrantLock lock=new ReentrantLock();//重入锁 pr

2017-02-23 23:19:42 227

原创 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

原创 ReentrantLock

ReentrantLock 是一个可重入锁。顾名思义它可以被同一个线程重复获取,曾几何时是synchronize代替品几个重要的方法 lock() :获取锁 lockInterruptibly() :获取锁优先响应中断 tryLock() :尝试获取锁,成功返回true,失败false。该方法不等待立即返回 tryLock(long time,TimeUnit unit) :指定时间内尝试获取锁 u

2017-02-23 21:29:33 176

原创 LinkedList

java很多类都源于链表结构设计的,什么是链表结构?我也不知道。。。 LinkedList实现链表的结构主要靠一个内部类Node实现 private static class Node { E item; //当前节点 Node next; //上一个节点 Node prev; //下一个节点 Node(Node pre

2017-02-23 11:27:16 163

原创 ArrayList

ArrayList作为一个新手最常用的集合,一直都没有研究他内部的实现,既然下定决心要写博客,就不管什么大小事都记录一下吧,或许真的有用呢?首先ArrayList有三个构造函数(jdk8) 1. new ArrayList(); //初始化一个空数组 2. new ArrayList(int initialCapacity); //创建指定大小的数组 3. new ArrayList(Collec

2017-02-23 11:19:27 540

原创 我是谁…我在哪里…我在做什么…

最近一直想提升自己的技术,可是不管怎么努力好像都没有达到自己想要的效果,还是我只是自己以为自己很努力!甚至开始怀疑自己是否适合当一名程序猿,技术比我差的人还有好多,这也让我以为自己有一点点编程的天赋!不知道是不是从小学习成绩一直都不好的原因,导致现在都没找到自己的一套学习方法。看技术的书理论知识总是看不进去,许多东西都记不住~。到底怎么样才算会一本技术呢!!!据说大神都会写博客,所以今天决定开一个博

2017-02-23 09:41:29 569

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除