Java并发编程:Synchronized及其实现原理 Java并发编程系列: Java 并发编程:核心理论 Java并发编程:Synchronized及其实现原理 Java并发编程:Synchronized底层优化(轻量级锁、偏向锁) Java 并发编程:线程间的协作(wait/notify/sl ...
分类:
编程语言 时间:
2020-06-24 16:18:46
阅读次数:
52
前言- 本系列随笔 会深入浅出,解析java多线程的各种技术及实现。 随笔主要根据 《java并发编程的艺术》一书作为参考。 本系列以使用为主要目的,本人理解有限,还望读者辩证采纳,没有过多涉及源码的讨论,重在初学者的使用,理解伪码。 预备知识:1. volatile 关键字需要有一定理解 2. A ...
分类:
编程语言 时间:
2020-06-19 18:03:24
阅读次数:
64
本文源码:GitHub·点这里||GitEE·点这里一、资源和加锁1、场景描述多线程并发访问同一个资源问题,假如线程A获取变量之后修改变量值,线程C在此时也获取变量值并且修改,两个线程同时并发处理一个变量,就会导致并发问题。这种并行处理数据库的情况在实际的业务开发中很常见,两个线程先后修改数据库的值,导致数据有问题,该问题复现的概率不大,处理的时候需要对整个模块体系有概念,才能容易定位问题。2、演
分类:
编程语言 时间:
2020-06-19 10:32:11
阅读次数:
61
@ java中的多线程(入门) 1.线程 1.1多线程的执行原理 先以一个Java中多线程的Demo为例展开解释,请看代码: //自定义的多线程类 public class MyThread extends Thread{ public MyThread(String name){ super(na ...
分类:
编程语言 时间:
2020-06-18 12:58:55
阅读次数:
43
线程池的好处Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池,相对于单线程串行处理(SerialProcessing)和为每一个任务分配一个新线程(OneTaskOneNewThread)的做法能够带来3个好处。降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。提高响应速度。当任务到达时,任务可以不需
分类:
编程语言 时间:
2020-06-17 16:56:29
阅读次数:
60
前提 首先该场景是一个酒店开房的业务。为了朋友们阅读简单,我把业务都简化了。 业务:开房后会添加一条账单,添加一条房间排期记录,房间排期主要是为了房间使用的时间不冲突。如:账单A,使用房间1,使用时间段为2020-06-01 12:00 - 2020-06-02 12:00 ,那么还需要使用房间1开 ...
分类:
编程语言 时间:
2020-06-06 11:14:23
阅读次数:
63
以上是读者小 K 给我发的私信。除此之外,还有个读者 down 也问我关于外包的事情,担心外包学不到技术。但很不幸的是年前被优化,最近急需找一份工作糊口,投了很多简历都石沉大海,只有几家外包公司有些意向,问我该怎么办。 ...
分类:
其他好文 时间:
2020-06-03 15:56:11
阅读次数:
116
多线程(multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理(Chip-level multithreading)或同 ...
分类:
编程语言 时间:
2020-05-30 20:15:53
阅读次数:
78
一开始就直接上代码,直接来看一段木有使用volatile关键字的线程调用代码吧: public class VolatileDemo { public static boolean stop = false; public static void main(String[] args) throws ...
分类:
编程语言 时间:
2020-05-30 19:59:55
阅读次数:
77
用“等待-通知”机制优化循环等待 前言 在破坏占用且等待条件的时候,如果转出账本和转入账本不满足同时在文件架上这个条件,就用死循环的方式来循环等待。 1 // 一次性申请转出账户和转入账户,直到成功 2 while(!actr.apply(this, target)) 3 ; 如果 apply() ...
分类:
编程语言 时间:
2020-05-28 23:45:18
阅读次数:
80