首页
学习
活动
专区
工具
TVP
发布

在周末的专栏

专栏作者
28
文章
22033
阅读量
16
订阅数
《Java性能权威指南》笔记----Java性能调优工具
运行队列(r):所有正在运行和就绪状态(一旦有可用cpu就可以运行)的线程数。该数据最好小于或等于CPU个数,否则性能就可能会下降。如果长时间运队列过长,则可能是系统过载。
在周末
2019-09-11
5840
《Java性能权威指南》笔记----JIT编译器
编译型语言(C++,Fortran等):运行程序前,需要用编译器将代码静态编译成CPU可执行的汇编码。汇编码针对特定的CPU。
在周末
2019-09-11
1.1K0
Java数据结构-------List
    ArrayList和Vector通过数组实现,几乎使用了相同的算法;区别是ArrayList不是线程安全的,Vector绝大多数方法做了线程同步。
在周末
2019-09-11
3770
Java数据结构-------Map
    1)无序; 2)访问速度快; 3)key不允许重复(只允许存在一个null Key);
在周末
2019-09-11
1.4K0
Java数据结构-------Set
    HashSet对应 HashMap、LInkedHashSet对应LinkedHashMap、TreeSet对应TreeMap
在周末
2019-09-11
4970
Java语法糖(一)
  语法糖(Syntactic Sugar):主要作用是提高编码效率,减少编码出错的机会。
在周末
2019-09-11
5350
Java语法糖(二)
  内部类:顾名思义,在类的内部在定义一个类。内部类仅仅是编译时的概念,编译成字节码后,内部类会生成单独的Class文件。
在周末
2019-09-11
3860
synchronized的实现原理
    1)普通同步方法,锁是当前实例;     2)静态同步方法,锁是当前类的Class实例,Class数据存在永久代中,是该类的一个全局锁;     3)对于同步代码块,锁是synchronized括号里配置的对象。
在周末
2019-09-11
3650
Java并发容器--ConcurrentHashMap
  1、不安全:大家都知道HashMap不是线程安全的,在多线程环境下,对HashMap进行put操作会导致死循环。是因为多线程会导致Entry链表形成环形数据结构,这样Entry的next节点将永远不为空,就会产生死循环获取Entry。具体内容见HashMap随笔。
在周末
2019-09-11
4190
Java并发容器--ConcurrentLinkedQueue
  ConcurrentLinkedQueue是一种基于链表实现的无界非阻塞线程安全队列,遵循先入先出规则。
在周末
2019-09-11
7520
Java内存模型
  重排序是指编译器或处理器为了提高程序性能而对指令序列进行重新排序的一种手段。重排序可以导致操作延时或程序看似乱序执行,给程序运行的结果带来一定的不确定性。
在周末
2019-09-11
6040
Java并发编程--AQS
  抽象队列同步器(AbstractQueuedSynchronizer,简称AQS)是用来构建锁或者其他同步组件的基础框架,它使用一个整型的volatile变量(命名为state)来维护同步状态,通过内置的FIFO队列来完成资源获取线程的排队工作。
在周末
2019-09-11
2930
Java并发编程--Lock
  Lock 实现提供了比使用 synchronized 方法和语句可获得的更广泛的锁定操作。synchronized方法或代码块的使用提供了对与每个对象相关的隐式监视器锁的访问,但却强制所有锁获取和释放均要出现在一个块结构中:当获取了多个锁时,它们必须以相反的顺序释放,且必须在与所有锁被获取时相同的词法范围内释放所有锁。Lock 实现提供了使用 synchronized 方法和语句所没有的其他功能,包括提供了一个非块结构的获取锁尝试 (tryLock())、一个获取可中断锁的尝试 (lockInterruptibly()) 和一个获取超时失效锁的尝试 (tryLock(long, TimeUnit))。
在周末
2019-09-11
4240
Java并发编程--ReentrantReadWriteLock
  ReentrantReadWriteLock是Lock的另一种实现方式,我们已经知道了ReentrantLock是一个排他锁,同一时间只允许一个线程访问,而ReentrantReadWriteLock允许多个读线程同时访问,但不允许写线程和读线程、写线程和写线程同时访问。相对于排他锁,提高了并发性。在实际应用中,大部分情况下对共享数据(如缓存)的访问都是读操作远多于写操作,这时ReentrantReadWriteLock能够提供比排他锁更好的并发性和吞吐量。
在周末
2019-09-11
3390
Java并发编程--BlockingQueue
  BlockingQueue支持两个附加操作的Queue:1)当Queue为空时,获取元素线程被阻塞直到Queue变为非空;2)当Queue满时,添加元素线程被阻塞直到Queue不满。BlockingQueue不允许元素为null,如果入队一个null元素,会抛NullPointerException。常用于生产者消费者模式。
在周末
2019-09-11
5100
Java并发编程--CountDownLatch
  CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完后再执行。
在周末
2019-09-11
5530
Java并发编程--CyclicBarrier
  CyclicBarrier是一个同步工具类,它允许一组线程互相等待,直到到达某个公共屏障点。与CountDownLatch不同的是该barrier在释放等待线程后可以重用,所以称它为循环(Cyclic)的屏障(Barrier)。
在周末
2019-09-11
5070
Java并发编程--Semaphore
  信号量(Semaphore)控制同时访问资源的线程数量,支持公平和非公平两种方式获取许可。
在周末
2019-09-11
3270
RPC-Thrift(一)
  注意点:1)Thrift客户端和服务端使用的I/O模型必须一致,上例中都是使用阻塞式同步I/O模型。
在周末
2019-08-26
3.7K0
Java并发编程--Exchanger
  用于线程间数据的交换。它提供一个同步点,在这个同步点,两个线程可以交换彼此的数据。这两个线程通过exchange方法交换数据,如果第一个线程先执行exchange()方法,它会一直等待第二个线程也执行exchange方法,当两个线程都到达同步点时,这两个线程就可以交换数据,将本线程生产出来的数据传递给对方。
在周末
2019-08-26
3960
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档