自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大宇的博客,欢迎访问

知其然,知其所以然,方可造其所以然

  • 博客(12)
  • 问答 (1)
  • 收藏
  • 关注

原创 Java并发编程的艺术-----第五章读书笔记

        前言:哇,这一章是真的费劲,以前是知其然,这次探索了如此多的同步组件的源码,终于是知其所以然了。        下一步也能开发自己的同步组件了,嘎嘎。- - - - - - - - - - - - - -  - - - - - - -  - - - - - - -  - - - - - - -  - - - - - - -  - - - - - - -  - - - - -...

2018-09-30 17:17:26 453

原创 Java并发编程的艺术-----第四章读书笔记

4.1.2        为什么要使用多线程?        一个线程在同一时刻只能运行在一个处理器核心上。如果程序使用多线程,那么程序就会被分配到多个处理器核心上,这样就会显著减少程序的处理时间,并且随着更多处理器核心的加入,程序的执行会变得更有效率。P84        使用多线程的程序:耗时少,效率高。    4.1.3        线程会得到OS分配的若干时间片,当线...

2018-09-21 11:12:52 317

原创 Java并发编程的艺术-----第三章读书笔记

3.1        原文:Java线程之间的通信由Java内存模型(JMM)控制,JMM决定一个线程对共享变量的写入何时对另外一个线程可见。P22        Java内存模型JMM定义了写到本地内存中的数据何时刷新到主存中。        原文:线程之间的共享变量存储在主内存中,每个线程都有一个私有的本地内存,本地内存存储了该线程的共享变量的副本。P22        线程之...

2018-09-19 09:26:06 432

原创 Java并发编程的艺术-----第二章读书笔记

1.1        原文:时间片是CPU分配给各个线程的时间。P1        时间片是CPU分配给各个线程的时间,一般是几十毫秒。        原文:上下文切换P1        任务从保存到再加载的过程是一次上下文切换。一个任务可能没有执行完毕就释放了锁,再次争抢同步锁并读取线程内的私有工作内存需要一定的时间,或者说是性能消耗。1.1.2        并发执行的...

2018-09-18 10:07:36 302

原创 ReentrantReadWriteLock实现原理探索

一、读写锁基本特性         我们知道,对锁性能的优化其中有一条:如果操作互不影响,那么锁就可以被分离。这就是锁分离的思想。        ReentrantReadWriteLock可重入的读写锁。读写锁在同一时刻允许多个读线程访问,但是在写线程访问时,所有的读线程和其他线程均被阻塞。        ReentrantReadWriteLock内部有两把锁,一把读锁,一把写...

2018-09-14 16:36:12 424

原创 原子操作类的使用

参考文章:https://blog.csdn.net/tlk20071/article/details/75729675一、自增:不加锁线程不安全public class AtomicDemo { //定义一个共享变量 private int value; //获取共享变量 public int getValue() { return ...

2018-09-13 17:37:27 436

原创 重拾心态,一个菜鸟的自我对话

        早上心态崩了,为什么这些东西这么难,这些东西到底有什么用?        好吧,我又一次怀疑人生了,但是脑海中一直有一个声音反驳那个问题:“学这些有什么用?又用不到!”。        我好像把"不会"与"不用"因果关系弄颠倒了,我是因为 不用才不会 呢 ,还是 不会才不用 呢?        半个小时又过去了,仿佛又浪费了一段时光。        每次在想放弃的时...

2018-09-13 10:45:47 520 1

原创 Java 虚拟机对 synchronized 锁的优化

一、volatile 与 synchronized 关键字 的原理         Java代码首先会被编译成字节码文件。字节码文件被加载到JVM中,JVM将字节码翻译成汇编指令,从而在CPU中执行。        谈到volatile关键字,就会想到两点:        (1)让变量在多个线程之间可见,并且强制线程从公共堆栈中取得变量的值(常见的从变量和线程的角度分别阐释)。...

2018-09-11 16:35:47 528

原创 ThreadLocal线程局部变量浅析

一、ThreadLocal的基本定义        官方定义:当使用 ThreadLocal 维护(set)变量时,ThreadLocal 为每个使用该变量的线程提供(get)独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。        ThreadLocal 并不是一个 Thread,而是 线程Thread的一个局部变量。        什...

2018-09-07 14:56:41 820

原创 异步调用--Future模式:返回伪造数据

一、Future模式的基本思想        如果某个方法的执行过程非常耗时,并且我们又不着急要这个方法的返回结果。        假设在单线程情况下,我们就必须要等待。        这个时候,可以修改此耗时的方法,让其立即返回客户端一个伪造的数据。        并且,在这个耗时的方法中开启另外一条线程,在后台慢慢计算。        主线程继续执行。        如...

2018-09-06 14:22:50 1327

原创 常用的线程计数器CountDownLatch与CyclicBarrier

 一、CountDownLatch类语法要点        (1)构造函数接收计数器的值。        (2)被计数的任务线程执行完毕后,记得调用一次 latch.countDown()方法,提示CountDownLatch对象,当前线程已经执行完毕。        (3)在需要等待多个任务执行完毕后,在需要同步的地方,使用 latch.await()方法进行阻塞。再次恢复任务执...

2018-09-05 10:52:19 490

原创 线程的状态

        在 java.lang.Thread.State类中,定义了线程的状态。 线程的状态 New New状态是线程实例化后还没有执行start()方法的状态。new Thread().getState(); RUNNABLE              线程进入运行的状态。 即   Thread t1 = new Thread(); t1.sta...

2018-09-05 10:47:57 196

空空如也

空空如也

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

TA关注的人

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