自定义博客皮肤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)
  • 收藏
  • 关注

转载 JAVA核心知识点整理.pdf

点击下方链接免费下载!https://cisco-huang.oss-cn-beijing.aliyuncs.com/文档/JAVA核心知识点整理.pdf

2019-02-25 16:43:25 8704 1

原创 进程与线程的区别

做一个简单的自我总结吧进程:是系统进行分配和管理资源的基本单位线程:进程的一个执行单元, 是进程内调度的实体、是CPU调度和分派的基本单位, 是比进程更小的独立运行的基本单位。线程也被称为轻量级进程, 线程是程序执行的最小单位。一个程序至少一个进程, 一个进程至少一个线程。进程有自己的独立地址空间, 每启动一个进程, 系统就会为它分配地址空间, 建立数据表来维护代码段、堆栈段和数据段, 这...

2019-02-13 17:01:43 20292

原创 springboot整合websocket

参考链接:https://spring.io/guides/gs/messaging-stomp-websocket/使用Maven构建项目pom文件参考, 其它工具构建方式类似, 具体参考官网<parent> <groupId>org.springframework.boot</groupId> <artifactId

2019-02-24 21:52:00 1433

原创 websocket单播、广播、组播介绍和使用场景说明

单播(Unicast):点对点, 私信私聊广播(Broadcast)(所有人): 游戏公告, 发布订阅多播, 也叫组播(Multicast)(特地人群): 多人聊天、发布订阅

2019-02-24 01:35:31 2657

原创 StampedLock原理及使用

JDK1.8之前, 锁已经那么多了, 为什么还要有StampedLock?一般应用, 都是读多写少, ReentrantReadWriteLock 因读写互斥, 故读时阻塞写, 因而性能上上不去。 可能会使线程饥饿官方代码例子public class StampedLockDemo { // 成员变量 private double x, y; // 锁实例 ...

2019-02-17 14:00:42 2260 1

原创 锁降级详解

锁降级: 写线程获取写入锁后可以获取读取锁, 然后释放写入锁, 这样就从写入锁变成了读取锁, 从而实现锁降级的特征public class LockDegrade { public static void main(String[] args) { ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantRe...

2019-02-17 11:51:24 6401 3

原创 读写锁特性及ReentrantReadWriteLock的使用

特征: 写写互斥、读写互斥、读读共享锁降级: 写线程获取写入锁或可以获取读取锁, 然后释放写入锁, 这样就从写入锁变成了读取锁, 从而实现锁降级的特征先看一个错误例子public class ReentrantReadWriteLockDemo { private int i = 0; private int j = 0; public void out() { ...

2019-02-17 10:00:43 228

原创 如何阅读源码?

一段简单的代码看构造看类之间的关系,形成关系图看使用到的方法,并逐步理解,边看代码边看注释debug

2019-02-16 11:31:41 155

原创 如何避免线程安全性问题

线程安全性问题成因多线程环境多个线程操作同一共享资源对该共享资源进行非原子性操作如何避免打破成因中三点中任一点多线程环境 – 将多线程改单线程(必要的代码加锁访问)多个线程操作同一共享资源 – 不共享资源(ThreadLocal、不共享、操作无状态、不可变)对共享资源进行了非原子性操作 – 将非原子性操作改成原子性操作(加锁、使用JDK自带的原子性操作的类、JUC提供的相应的...

2019-02-16 00:23:42 454

原创 什么是线程安全性

当多个线程访问某个类, 不管运行环境采用何种调度方式或者这些线程如何交替执行, 并且在主调代码中不需要任何额外的同步或协同, 这个类都能表现出正确的行为, 那么就称这个类为线程安全的。-- 《并发编程实战》什么是线程不安全?多线程并发访问时, 得不到正确的结果。...

2019-02-15 17:28:13 382

原创 线程的优先级

线程的优先级告诉程序该线程的重要程度有多大。 如果有大量程序都被堵塞, 都在等候运行, 程序会尽可能地运行优先级的那个程序。 但是, 这并不表示优先级较低的线程不会运行。 若程序的优先级较低, 只不过表示它被允许允许的机会小一些而已。线程的优先级设置可以为1-10的任一数值, Thread类中定义了三个线程优先级, 分别是:MIN_PRIORITY(1)、NORM_PRIORITY(5)、MAX...

2019-02-15 14:31:37 1584

原创 线程的状态及其相互转换

我们都知道线程的几个状态, 从源码可以看出不通过代码分析的都是耍流氓~/** * 线程状态Demo */public class ThreadStateDemo { public static void main(String[] args) { // NEW// Thread thread = new Thread(); ...

2019-02-14 09:28:37 864

原创 并发编程的挑战之频繁的上下文切换

cpu为线程分配时间片,时间片非常短(毫秒级别),cpu不停的切换线程执行,在切换前会保存上一个任务的状态,以便下次切换回这个任务时,可以再加载这个任务的状态,让我们感觉是多个程序同时运行的我们知道上下文的频繁切换,会带来一定的性能开销, 那么如何减少上下文切换的开销?无锁并发编程:多线程竞争锁时,会引起上下文切换,所以多线程处理数据时, 可以用一些方法来避免使用锁, 如将数据的ID按照Has...

2019-02-12 18:50:13 635

原创 什么是并发编程

并发历史:早期计算机–从头到尾执行一个程序,资源浪费操作系统出现–计算机能运行多个程序,不同的程序在不同的单独的进程中运行一个进程,有多个线程提高资源的利用率,公平 串行与并行的区别: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190212181306400.png?x-oss-process=image/watermark,type_ZmF...

2019-02-12 18:25:50 1222

空空如也

空空如也

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

TA关注的人

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