IO
摘要:
阅读全文
posted @
2020-09-21 09:32
火枪
阅读(73)
推荐(0)
java核心-多线程(9)- ThreadLocal类
摘要:1.背景 ThreadLocal类我想一般的码农或初级程序员在平时开发中基本上接触不到,但是面试老师会问、往高级点走会遇到这个类。这个类不是为了解决资源的竞争问题,而是为每个线程提供同一个容器,容器内部为每个线程提供一块空间,各个线程只能操作自己的空间,相互之间独立。 这个类在java.lang包中
阅读全文
posted @
2020-02-22 18:12
火枪
阅读(135)
推荐(0)
java核心-多线程(8)- 并发原子类
摘要:使用锁能解决并发时线程安全性,但锁的代价比较大,而且降低性能。有些时候可以使用原子类(juc atomic包中的原子类)。还有一些其他的非加锁式并发处理方式,我写这篇文章来源于 "Java中有哪些无锁技术来解决并发问题" 的思考。 1.原子类场景 2.原子类分类 3.原子类实现原理 如图LongAd
阅读全文
posted @
2020-01-22 17:14
火枪
阅读(180)
推荐(0)
java核心-多线程(4)-线程类基础知识
摘要:1.并发 2.基础 3.访问共享资源 4.终结任务 5.线程协作 6.错失信号 7.死锁 8.其他工具 以上来自《think in java》
阅读全文
posted @
2020-01-14 00:16
火枪
阅读(266)
推荐(0)
java核心-多线程(6)-线程池-ThreadPoolExecutor
摘要:1.java多线程编程少不了使用线程池,线程池相关的工具类所在jdk包,java.util.concurrent 2.使用示例 demo1 意外发生了,我发现我随手写的代码是垃圾,下面是运行结果 分析一下结果 前面是上班期间匆匆忙忙写的代码,周末回家定睛一看,代码中一个很低级的错,就是取余%符号写成
阅读全文
posted @
2020-01-02 11:27
火枪
阅读(470)
推荐(0)
java核心-JVM-gc面试题
摘要:1.写一个memory leak的例子 执行了好半天,结果报错了 解决办法: 将成员变量写到方法printSomething()里面 执行结果 可见对于内存泄漏的问题可能来源了对象的作用域定义不合理,成员变量或全局变量的对象作用域比较宽,gc来不及回收容易造成内存泄漏
阅读全文
posted @
2019-06-01 22:43
火枪
阅读(1668)
推荐(0)
java核心-多线程-零碎知识收集
摘要:1.不能使用Integer作为并发锁 原因:synchronized(Integer)时,当值发生改变时,基本上每次锁住的都是不同的对象实例,想要保证线程安全,推荐使用AtomicInteger之类会更靠谱。使用System.identityHashCode(obj)可以得到根据物理地址算出的has
阅读全文
posted @
2019-06-01 16:34
火枪
阅读(142)
推荐(0)
Java多线程涉及的概念(3)
摘要:Java多线程涉及的概念 在理解进程和线程概念之前首选要对并发有一定的感性认识,如果服务器同一时间内只能服务于一个客户端,其他客户端都再那里傻等的话,可见其性能的低下估计会被客户骂出翔来,因此并发编程应运而生,并发是网络编程中必须考虑的问题。实现并发的方式有多种:比如多进程、多线程、IO多路复用。
阅读全文
posted @
2019-05-09 17:00
火枪
阅读(239)
推荐(0)
java核心-多线程(1)-知识大纲
摘要:Thread,整理一份多线程知识大纲,大写意 1.概念介绍 线程 进程 并发 2.基础知识介绍 Java线程类 Thread 静态方法&实例方法 Runnable Callable Future FutureTask 线程状态 线程优先级 内存模型 violate 3.访问共享资源 synchron
阅读全文
posted @
2019-05-07 14:41
火枪
阅读(225)
推荐(0)
java核心-多线程(2)-Java多线程编程涉及到包、类
摘要:Java有关多线程编程设计的类主要涉及两个包java.lang和java.util.concurrent两个包 java.lang包,主要是线程基础类 java.util包,主要是线程基础类和并发工具类
阅读全文
posted @
2019-04-28 17:14
火枪
阅读(406)
推荐(0)
java核心-多线程-线程类(5)-Callable、Future和FutureTask
摘要:1. 基本概念 Callable,Callable和Runnable差不多,两者都是为那些其实例可能被另一个线程执行的类而设计的,最主要的差别在于Runnable不会 返回线程运算结果,Callable可以(假如线程需要返回运行结果)。 Future,是一个接口表示异步计算的结果,它提供了检查计算是
阅读全文
posted @
2019-04-28 16:03
火枪
阅读(300)
推荐(0)
Java核心-多线程(7)-并发控制器-Exchanger交换器
摘要:1.基本概念 Exchanger,从名字上理解就是交换。Exchanger用于在两个线程之间进行数据交换,注意也只能在两个线程之间进行数据交换。 线程会阻塞在Exchanger的exchange方法上,直到另外一个线程也到了同一个Exchanger的exchange方法时,二者进行数据交换, 然后两
阅读全文
posted @
2019-04-16 00:51
火枪
阅读(259)
推荐(0)
Java核心-多线程(7)-并发控制器-CyclicBarrier同步屏障
摘要:1.基本概念 中文译本同步屏障,同样来自jdk并发工具包中一个并发控制器,它的使用和CountDownLatch有点相似,能够完成某些相同并发场景,但是它们却不相同。 2.抽象模型 主要用来实现多个线程同步,同步后可能唤醒另外一个任务,然后继续执行线程后面的任务。CountDownLatch抽象模型
阅读全文
posted @
2019-04-10 01:03
火枪
阅读(206)
推荐(0)
Java核心-多线程(7)-并发控制器-CountDownLatch倒数闩
摘要:1.基本概念 CountDownLatch,中文名倒数闩,jdk并发工具包中一个并发控制器,它抽象了一个常见的多线程并发场景,开发人员使用它可以写出同时兼顾线程安全性与高效率的代码。 2.抽象模型 相当于是一种进化版本的等待/通知机制,它可以的实现的是一个或多个工作线程完成任务后通知一个或多个等待线
阅读全文
posted @
2019-04-08 21:36
火枪
阅读(359)
推荐(0)
架构-消息中间件-基于内存的mq
摘要:使用jdk中的BlockingQueue实现mq
阅读全文
posted @
2019-03-20 00:04
火枪
阅读(401)
推荐(0)