写在前面 在Java中提供了synchronized关键字来保证只有一个线程能够访问同步代码块。既然已经提供了synchronized关键字,那为何在Java的SDK包中,还会提供Lock接口呢?这是不是重复造轮子,多此一举呢?今天,我们就一起来探讨下这个问题。 再造轮子? 既然JVM中提供了syn ...
分类:
编程语言 时间:
2020-09-18 02:25:58
阅读次数:
29
题目大意 一个长度2n的ab各n个的ab串,每次可以同时删第i个a和第i个b,求剩下的最大字典序的串 n<=3000 题解 菜 把a当作+1b当作-1,在前缀和为0的位置划开变成若干段,那么删只会影响到段的内部 结论:在同一个段内,每个ab对(x,y)的x和y的大小关系相同,否则一定会经过前缀和为0 ...
分类:
其他好文 时间:
2020-09-17 17:33:33
阅读次数:
20
看了网上很多关于Synchronized的讲解,但是感觉讲解的都不是很透彻,今天博主也来写一篇关于Synchronized的文章,希望能帮助大家更好的理解Synchronized~ 一、为什么要使用synchronized 在并发编程中存在线程安全问题,主要原因有:1.存在共享数据 2.多线程共同操 ...
分类:
其他好文 时间:
2020-09-17 13:34:10
阅读次数:
14
前言 并发编程式Java基础,同时也是Java最难的一部分,因为与底层操作系统和硬件息息相关,并且程序难以调试。本系列就从synchronized原理开始,逐步深入,领会并发编程之美。 正文 基础稍微好点的同学应该都知道,Java中获取锁有两种方式,一种是使用synchronized关键字,另外一种 ...
分类:
其他好文 时间:
2020-09-10 23:06:13
阅读次数:
57
###关键字总览 访问控制 private protected public 类,方法和变量修饰符 abstract class extends final implements interface native new static strictfp synchronized transient ...
分类:
编程语言 时间:
2020-08-24 16:33:44
阅读次数:
46
方法1:synchronized class Odd implements Runnable { @Override public void run() { while(idx < len){ synchronized (lock){ if (idx < len && (num[idx] >> 1 ...
分类:
编程语言 时间:
2020-08-24 15:13:40
阅读次数:
42
synchronized是一种互斥锁 一次只能允许一个线程进入被锁住的代码块 synchronized是一种内置锁/监视器锁 Java中每个对象都有一个内置锁(监视器,也可以理解成锁标记),而synchronized就是使用对象的内置锁(监视器)来将代码块(方法)锁定的 synchronized锁作 ...
分类:
其他好文 时间:
2020-08-19 19:19:01
阅读次数:
57
Lock显式锁是一个接口 Lock方式来获取锁支持中断、超时不获取、是非阻塞的 提高了语义化,哪里加锁,哪里解锁都得写出来 Lock显式锁可以给我们带来很好的灵活性,但同时我们必须手动释放锁 支持Condition条件对象 允许多个读线程同时访问共享资源 Synchronized锁经过优化之后,现在 ...
分类:
其他好文 时间:
2020-08-19 19:17:57
阅读次数:
76
互斥同步 互斥同步(Mutual Exclusion & Synchronization)是常见的一种并发正确性保证手段。同步是指子啊多个线程并发访问共享数据时,保证共享数据在同一时刻只能被一个(或者是一些,使用信号量的时候)线程使用。而互斥是实现同步的一种手段,临界区(Critial Sectio ...
分类:
编程语言 时间:
2020-08-04 09:51:42
阅读次数:
67
写在前面上一篇文章共享资源那么多,如何用一把锁保护多个资源?文章我们谈到了银行转账经典案例,其中有两个问题:单纯的用synchronized方法起不到保护作用(不能保护target)用Account.class锁方案,锁的粒度又过大,导致涉及到账户的所有操作(取款,转账,修改密码等)都会变成串行操作如何解决这两个问题呢?咱们先换好衣服穿越回到过去寻找一下钱庄,一起透过现象看本质,dengdengd
分类:
其他好文 时间:
2020-08-02 10:24:49
阅读次数:
93