
多线程
马哥每日分享
弃燕雀之小志,慕鸿鹄以高翔
展开
-
并发编程专题01-多线程快速入门
多线程快速入门 (下一篇:java内存模型)线程与进程区别每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行。使用线程可以把占据时间长的程序中的任务放到后...原创 2019-09-02 17:23:44 · 138 阅读 · 0 评论 -
并发编程专题02-java内存模型
Java内存模型(下一篇:多线程之间通讯)共享内存模型指的就是Java内存模型(简称JMM),JMM决定一个线程对共享变量的写入时,能对另一个线程可见。从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存(main memory)中,每个线程都有一个私有的本地内存(local memory),本地内存中存储了该线程以读/写共享变量的副本...原创 2019-09-04 19:07:37 · 139 阅读 · 0 评论 -
并发编程专题03-多线程之间实现通讯
多线程之间实现通讯(下一篇:线程池原理分析)什么是多线程之间通讯?多线程之间通讯,其实就是多个线程在操作同一个资源,但是操作的动作不同。画图演示多线程之间通讯需求需求:第一个线程写入(input)用户,另一个线程取读取(out)用户.实现读一个,写一个操作。码实现基本实现共享资源源实体类class Res {publi...原创 2019-09-04 19:09:18 · 115 阅读 · 0 评论 -
并发编程专题04-线程池原理分析
线程池原理分析(下一篇:并发编程专题-Callable与Future模式)并发包(计数器)CountDownLatchCountDownLatch 类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。CountDown...原创 2019-09-04 19:10:01 · 197 阅读 · 0 评论 -
并发编程专题05-Callable与Future模式
Callable与Future模式(下一篇:java锁的深度化)Callable在Java中,创建线程一般有两种方式,一种是继承Thread类,一种是实现Runnable接口。然而,这两种方式的缺点是在线程任务执行结束后,无法获取执行结果。我们一般只能采用共享变量或共享存储区以及线程通信的方式实现获得任务结果的目的。不过,Java中,也提供了使用Callable...原创 2019-09-04 19:10:38 · 100 阅读 · 0 评论 -
并发编程专题06-java锁的深度化
Java锁的深度化(下一篇:Disruptor框架)悲观锁、乐观锁、排他锁、重入锁悲观锁与乐观锁悲观锁:悲观锁悲观的认为每一次操作都会造成更新丢失问题,在每次查询时加上排他锁。每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读...原创 2019-09-04 19:11:15 · 204 阅读 · 0 评论