自定义博客皮肤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)
  • 收藏
  • 关注

原创 阻塞队列 BlockingQueue 的四组api

第一组 add() 和 remove() 方法// 抛出异常 返回布尔值 public static void test1(){ ArrayBlockingQueue queue = new ArrayBlockingQueue<>(3); System.out.println(queue.add(1)); System.out.println(queue.add(2)); System.out.println(

2020-12-18 23:51:12 254 1

原创 (JAVA)(ReadWriteLock)读写锁

首先自定义一个缓存来实现程序的读(get)和写(put)操作。在自定义缓存(这里使用HashMap定义缓存)的时候会使用volatile关键字,volatile关键字的特点可以保证操作的可见性,但不一定保证操作的原子性。为什么要保证操作的可见性,这里简略说一下,因为在多线程情况下如果线程A对缓存进行操作,线程B也对缓存进行操作,在A写入缓存的时候B也写入缓存,会出现B的写入对A的写入覆盖的情况,程序会抛出异常,还有其他的数据异常的情况会出现,详情可以了解java中多线程。class MyCache1{.

2020-12-18 17:39:11 146 3

原创 JUC中常用的三大辅助类

CountDownLatchCountDownLatch类可以设置一个计数器,然后通过countDown方法来进行减1的操作,使用await方法等待计数器不大于0,然后继续执行await方法之后的语句。package demo_04;import java.util.concurrent.CountDownLatch;import java.util.concurrent.TimeUnit;// JUC中常用的三大辅助类 一CountDownLatchpublic class test

2020-12-18 00:04:40 691

原创 蓝桥杯 P3887 [GDOI2014]世界杯

题目描述3014年世界杯足球赛就要开始了!作为卫冕冠军中国足球队的教练,手下每位球员都是猛将,如何摆出最强的11人阵容也是一件幸福的烦恼事啊。众所周知,足球阵容里的11个球员都会被分配到场上某一个特别的位置,而这些位置主要分为守门员、后卫、中场和前锋四种,其中守门员有且只有一个,后卫、中场和前锋的人数取决于你安排的足球阵型。形容足球阵型的方法由后卫开始计算至前锋,但不把守门员计算在内。例如,3-5-2阵型是指有三个后卫、五个中场及两名前锋。由于竞争激烈,每位球员只会培养其中一种位置所需要的技能,所以他们

2020-12-17 00:47:10 286

原创 (Java)集合类的安全性问题及解决方法

集合类在单线程的情况下不会出现问题package demo_02;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class Test_02 { public static void main(String[] args) { List<String> list = Arrays.asList("1", "2", "3"); lis

2020-12-16 19:46:57 317

原创 线程八锁现象的理解

八锁即锁的八个问题一、正常情况下线程的执行顺序package demo_02;// 八锁问题// 正常线程执行情况public class Test_01 { public static void main(String[] args) { PrintMessage pm = new PrintMessage(); new Thread(()->{pm.printA();},"A").start(); new Thread(()-.

2020-12-16 14:10:10 195 1

原创 蓝桥杯 P2719 搞笑世界杯

题目背景落谷网打卡算法题第二天。很久很久以后,一次世界杯。题目描述随着世界杯小组赛的结束,法国,阿根廷等世界强队都纷纷被淘汰,让人心痛不已. 于是有人组织了一场搞笑世界杯,将这些被淘汰的强队重新组织起来和世界杯一同比赛.你和你的朋友欣然去购买球票.不过搞笑世界杯的球票出售方式也很特别,它们只准备了两种球票.A 类票------免费球票 B 类票-------双倍价钱球票.购买时由工作人员通过掷硬币决定,投到正面,的买A类票, 反面的买B类票.并且由于是市场经济,主办方不可能倒贴钱,所以他们总

2020-12-16 00:04:51 265 2

原创 生产者消费者问题(JAVA)

生产者消费者问题生产者消费者问题是操作系统中经典的多线程操作问题,这里主要讲解如何在java中解决生产者消费者问题,避免死锁的产生。生产者消费者问题简单来说就是有生产者和消费者两类人,生产者负责生产产品,消费者负责消费产品,怎么保证消费者进行消费的时候一定有产品可以进行消费?如果产品都存储在仓库里,怎么保证生产者生产不会超出仓库的存储限制?这就是生产者消费者问题的核心。解决方法一、使用传统的synchronized锁解决该问题使用传统的synchronized锁解决该问题在操作方法加上s

2020-12-15 23:06:17 301

原创 Synchronized锁和Lock锁

synchronized锁在公司真正的无多线程开发中,线程是一个独立的资源类,不应该有多余的附属操作(继承Runnable、Callable接口等),避免程序的耦合性。在多线程运行中,如果不加锁,容易发生多个线程同时操作一个资源,出现无预料的问题。例如:银行取钱,你从银行取钱的同时使用支付宝转账,可能导致银行卡扣钱的写入被覆盖,最终只扣了一次的情况,或者导致银行卡存款数为负的情况。synchronized锁是锁机制中传统的同步实现方法,使用起来也比较简单,只需要在方法前加上synchronize

2020-12-15 14:57:46 230 3

原创 传智杯 P1007 独木桥问题题解

题目背景战争已经进入到紧要时间。你是运输小队长,正在率领运输部队向前线运送物资。运输任务像做题一样的无聊。你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们。士兵们十分愤怒,因为这座独木桥十分狭窄,只能容纳11个人通过。假如有22个人相向而行在桥上相遇,那么他们22个人将无妨绕过对方,只能有11个人回头下桥,让另一个人先通过。但是,可以有多个人同时呆在同一个位置。题目描述突然,你收到从指挥部发来的信息,敌军的轰炸机正朝着你所在的独木桥飞来!为了安全,你的部队必须撤下

2020-12-15 00:11:34 1050

原创 进程和线程(Java)

进程和线程进程是计算机中的程序关于某数据集合上的一次运动活动,是系统进行资源分配和调度的基本单位。进程主要有两个概念:进程是一个实体。进程是一个“执行中的程序”。线程是操作系统进行运算和调度的最小单位。一个进程由一个或者多个线程组成。java中默认有两个线程:main函数线程GC线程(垃圾回收机制)并行和并发的区别:并行是指并排进行,同时实施或者进行。例如:赛跑,枪声一响所有人在同一时间开始奔跑。并发是指不同的请求访问同一个资源。例如:只有一个蛋糕,但是所有小朋友都想吃,分给谁

2020-12-14 23:00:50 89

原创 Markdown学习

Markdown的用法Markdown是一种纯文本格式的标记语言。通过简单的标记语法,它可以使普通文本内容具有一定的格式。简单来说,就是为了让普通的文本格式更加美观,所以我们使用Markdown语法。一、标题Markdown中标题使用#符号,多少个#符号对应多少级标题(最多支持六级标题),例如:#是一个一级标题,##是一个二级标题,注意Markdown语法后要跟一个空格。示例:二、字体字体加粗:需要加粗的文字使用两个*包裹起来(开始一个结束一个)字体斜体:字体斜体使用一个*将文字

2020-12-14 17:20:23 797

空空如也

空空如也

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

TA关注的人

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