专注于快乐的事情

Java

异步理论学习

概念介绍阻塞/非阻塞阻塞调用是指调用结果返回之前,当前线程会被挂起。vs同步,对于同步调用来说,很多时候当前线程还是激活的,只是从逻辑上当前函数没有返回而已。 非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前,不会阻塞当前线程,而会...

线程池的学习

线程池的学习Java提供了4钟线程池:newCachedThreadPoolnewFixedThreadPoolnewSingleThreadExecutornewScheduledThreadPool这四种线程池都直接或者间接获取的...

阻塞队列

概念介绍阻塞队列与普通队列的区别试图从空的阻塞队列中获取元素的线程将会被阻塞,直到其他的线程往空的队列插入新的元素。同样,试图往已满的阻塞队列中添加新元素的线程同样也会被阻塞,直到其他的线程使队列重新变得空闲起来。 阻塞队列常用于生产...

java线程状态总结

线程的各种状态线程的状态跃迁 锁(monitor)池和等待池在java中,每个对象都有两个池,锁(monitor)池和等待池 锁池:假设线程A已经拥有了某个对象(注意:不是类)的锁,而其它的线程想要调用这个对象的某个synchroni...

线程中断

线程中断总结背景有些时候,需要一个线程死掉, 或者让它结束某种等待的状态,该怎么办呢?比较安全的做法是:1.使用等待/通知机制2.给那个线程一个中断信号, 让它自己决定该怎么办 线程中断使用场景: 场景1: 在某个子线程中为了等待一些...

共享锁分析

共享锁代码分析参考代码ReentrantReadWriteLock ReadLock中的sync是一个Sync对象,Sync继承于AQS类,即Sync就是一个锁。ReentrantReadWriteLock中也有一个Sync对象,而且...

线程池学习

线程池学习schedule、scheduleAtFixedRate和scheduleWithFixedDelay的区别schedule(commod,delay,unit) ,这个方法是说系统启动后,需要等待多久执行,delay是等待...

CLH

CLHCLH(Craig, Landin, and Hagersten)锁,简单的说,它使用队列的方式来解决n个线程来争夺m把锁的问题,每当一个新的线程需要获取锁,为其创建一个节点并放到队尾,如果该线程是队列中的第一个节点,则节点的l...

Java Native Interface

#什么是JNI? JNI是Java Native Interface的英文缩写, 中文翻译为本地调用, 自从Java 1.1开始就成为了Java标准的一部分. Java不是万能的,java是跨平台的语言,所付出的代价就是牺牲一些对底层...

锁的基本概念

锁的学习锁的出现最早出现在操作系统中,用于进程和线程间的同步 临界区概念一个进程在进入临界区之间,必须得到锁。 123456789While(true) { 请求锁 临界区 释放锁 剩余区} ...