自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (9)
  • 收藏
  • 关注

原创 centos8系统开放防火墙端口

centos8系统开放防火墙端口

2021-06-27 16:30:01 782 2

原创 Centos8 系统下安装jdk1.8

Centos8 系统下安装jdk1.8

2021-06-26 23:58:05 489 2

原创 Java多线程-并发工具类-Semaphore

Java多线程-并发工具类-Semaphore

2021-06-24 17:16:26 154

原创 Java多线程-并发工具类-CountDownLatch

CountDownLatch使用场景让某一条线程等待其他线程执行完毕之后再执行方法方法解释public CountDownLatch(int count)构造方法,参数传递线程数,表示等待线程数量public void await()让线程等待public void countDown()当前线程执行完毕案例三个孩子吃馄饨,妈妈等他们吃完馄饨之后再收拾碗筷MotherThread类package com.cmy.countdownlatc

2021-06-24 17:15:33 115

原创 Java多线程-并发工具类-Hashtable

HashtableHashMap是线程不安全的(多线程环境下可能会存在问题)为了保证数据的安全性,可以使用Hashtable,但是Hashtable的效率低为什么会效率低?Hashtable采用悲观锁synchronized的形式保证数据的安全性只要有线程访问,会将整张表全部锁起来,所以Hashtable的效率低下...

2021-06-24 17:14:24 141

原创 Java多线程-悲观锁和乐观锁

synchronized和CAS的区别相同的:在多线程的情况下,都可以保证共享数据的安全性不同点:synchronized总是从最坏的角度出发,认为每次获取数据的时候,别人都有可能修改,所以在每次操作共享数据时都会先上锁。(悲观锁)CAS是从乐观的角度触发,认为每次获取共享数据时别人都不会修改,所以不会上锁,只不过在修改共享数据时会检查一下,别人有没有修改过共享数据如果修改,则获取最新值,再重新操作(自旋)如果不修改,那么直接修改共享数据的值...

2021-06-24 17:13:34 70

原创 Java多线程-线程池-ThreadPoolExecutor

ThreadPoolExecutorThreadPoolExecutor构造方法的七个参数int corePoolSize核心线程的数量,不能小于0int maximumPoolSize最大线程数,不能小于0,最大数量 >= 核心线程数量long keepAliveTime空闲线程最大存活时间,不能小于0TimeUnit unit时间单位BlockingQueue<Runnable> workQueue任务队列,不能为nullThreadFa

2021-06-24 17:12:08 90

原创 Java多线程-线程池-Executors默认线程池

Executors默认线程池代码实现1.创建空的连接池创建Executors中的静态方法2.需要执行任务时,创建线程对象。任务执行完毕,线程对象归还给池子submit方法,有线程对象则直接拿来用,没有则自动创建线程对象3.所有任务执行完毕,关闭连接池shutdown方法static ExecutorService newCachedThreadPool()创建一个默认的线程池package com.cmy.myThreadpool;import java.util.c

2021-06-24 17:11:01 490

原创 Java多线程-线程状态

线程状态虚拟机中线程的六种状态

2021-06-23 15:46:37 57

原创 Java多线程-阻塞队列

阻塞队列阻塞队列阻塞队列的基本写法实现等待唤醒机制阻塞队列BlockingQueue的核心方法:put(anObject): 将参数放入队列,如果放不进去会阻塞take(): 取出第一个数据,取不到会阻塞常见的BlockingQueueArrayBlockingQueue:底层是数组,有界LinkedBlockingQueue:底层是链表,无界。但不是真正的无界,最大为int的最大值阻塞队列的基本写法package com.cmy.threaddemo11;imp

2021-06-23 15:42:59 201

原创 Java多线程-生产者和消费者

生产者和消费者生产者消费者生产者和消费者代码实现生产者1.判断桌子上是否有披萨,有则等待,无则生产2.把披萨放在桌子上3.叫醒等待的消费者开吃消费者1.判断桌子上是否有披萨2.如果没有则继续等待3.如果有则开吃4.吃完之后,桌子上的披萨就没有了,叫醒等待的生产者继续生产,披萨数量减1生产者和消费者代码实现生产者package com.cmy.threaddemo10;/** * @author 陈明勇 */public class Cooker extends

2021-06-23 15:40:45 73

原创 Java多线程-线程安全问题

线程安全问题线程安全问题案例案例改进原因分析卖票数据安全问题的解决同步代码块同步方法同步静态方法Lock锁死锁线程安全问题案例需求:某电影院目前正在上映国产大片,共有10张票,而它只有3个窗口售票,设计一个程序模拟该电影院卖票思路:① 定义一个Ticket实现Runnable接口,里面定义一个成员变量:private int ticketCount = 100;② 在Ticket类中重写run()方法实现卖票,代码步骤如下:​ A:判断如果票数大于0,卖票,并告知售票窗口名称​ B:票

2021-06-23 15:39:01 377

原创 Java多线程-守护线程

后台线程/守护线程public final void setDaemon(boolean on): 设置为守护线程线程类1package com.cmy.threaddemo8;/** * @author 陈明勇 */public class MyThread extends Thread { @Override public void run() { for (int i = 0; i < 10; i++) { System

2021-06-23 15:37:31 96

原创 Java多线程-线程的优先级

线程调度多线程的并发运行:​ 计算机中的CPU,在任意时刻只能执行一条机器指令,每个线程只有获得CPU的使用权才能执行代码。​ 各个线程轮流获得CPU的使用权,分别执行各自的代码线程的两种调度模型分时调度模型:所有线程轮流使用CPU的使用权,平均分配每个线程占用CPU的时间片抢占式调度模型:优先让优先级高的线程使用CPU,如果线程优先级相同,那么会随机选择一个,优先级高的线程获取CPU的时间片相对多一些java使用的是抢占式调度模型线程的优先级public final v

2021-06-23 15:36:30 125

原创 Java多线程-sleep线程休眠

线程休眠pulibc static void sleep(long time): 让线程按指定时间休眠, 单位为毫秒因为是静态方法,所以可以通过Thread.sleep()调用

2021-06-23 15:35:41 158

原创 Java多线程-获取线程对象

获取当前线程的对象public static Thread currentThread();返回当前正在执行的线程的引用,此方法一般用于使用实现Runnable创建线程的方式去获取线程的名字,因为是静态方法,所以可以通过Thread.currentThread()去调用package com.cmy.threaddemo2;/** * @author 陈明勇 */public class MyRunnable implements Runnable { @Override

2021-06-23 15:34:49 661

原创 Java多线程-获取和设置线程名字

获取和设置线程名字获取线程的名字String getName(); 返回此线程的名字没有指定线程的名字时,线程是有默认名字的,格式:Thread-编号Thread类中设置线程的名字void setName(Strign name): 将此线程的名称更改为等于参数name通过构造方法也可以设置线程名称...

2021-06-23 15:33:26 290

原创 Java多线程实现线程的三种方式及其对比

java多线程实现线程的三种方式及其对比方式1:继承Thread类步骤思考方式2:实现Runnable接口步骤方式3:Callable和Future步骤三种方式对比方式1:继承Thread类步骤定义一个MyThread类,继承Thread类在MyThread类中重写run方法创建MyThread类的对象启动线程MyThred类package com.cmy.threaddemo;/** * @author 陈明勇 */public class MyThread extends

2021-06-23 15:31:45 134 2

原创 SpringBoot学习笔记—SpringBoot整合MyBatis

SpringBoot整合MyBatisSpringBoot整合MyBatis实现步骤① 搭建SpringBoot工程② 引入MyBatis起步依赖,添加MySQL驱动③ 编写DataSource和MyBatis相关配置④ 定义表和实体类⑤ 编写dao和mapper文件/纯注解开发⑥ 测试SpringBoot整合MyBatis实现步骤① 搭建SpringBoot工程② 引入MyBatis起步依赖,添加MySQL驱动③ 编写DataSource和MyBatis相关配置④ 定义表和实体类⑤ 编写d

2021-06-19 11:32:43 93

原创 SpringBoot学习笔记—SpringBoot整合Redis

SpringBoot整合RedisSpringBoot整合Redis实现步骤①搭建SpringBoot工程② 引入redis起步依赖③ 配置redis相关属性④ 注入RedisTemplate模板和编写测试方法SpringBoot整合Redis实现步骤① 搭建SpringBoot工程② 引入redis起步依赖③ 配置redis相关属性④ 注入RedisTemplate模板和编写测试方法①搭建SpringBoot工程② 引入redis起步依赖勾上 NoSQL -> Spring

2021-06-19 11:29:58 146

原创 SpringBoot学习笔记—SpringBoot整合Junit

SpringBoot整合JunitSpringBoot整合Junit实现步骤① 搭建SpringBoot工程② 引入start-test起步依赖③编写测试类SpringBoot整合Junit实现步骤① 搭建SpringBoot工程② 引入starter-test起步依赖③ 编写测试类④ 添加测试相关注解@RunWith(Spring.Runner.class)@SpringBootTest(classes = 启动类.class)如果是springboot2.2.0版本

2021-06-19 11:26:13 156

原创 SpringBoot学习笔记—SpringBoot配置—profile

SpringBoot配置—profileprofileprofile的配置方式profile的激活方式profile使用SpringBoot开发应用时,通常一个项目会被安装到不同环境中,如:开发、测试、生产。其中数据库地址、服务器端口等配置都不一样,如果每次打包时都要修改配置,会很麻烦。profile的功能就是用来进行动态配置切换的profile的配置方式多profile文件方式主文件 application.yml开发模式配置文件 application-dev.ymlserve

2021-06-19 11:20:37 196

原创 SpringBoot学习笔记—SpringBoot配置—yaml文件

yaml文件的使用配置文件分类YAML对比properties和xml基本语法数据格式SpringBoot读取配置内容@Value注解获取Environment对象获取@ConfigurationProperties获取配置文件分类SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者application.yml(application.yaml)进行配置。properties:server.

2021-06-19 11:05:38 149

原创 SpringBoot学习笔记—SpringBoot快速入门

SpringBoot快速入门SpringBoot快速入门需求实现步骤① 创建Maven项目② 导入SpringBoot依赖③ 定义Controller类④ 编写引导类⑤ 启动测试注意事项快速构建SpringBoot工程SpringBoot快速入门需求搭建SpringBoot工程,定义HelloController类,实现一个hello()方法,返回字符串"Hello SpringBoot",即在页面上显示“Hello SpringBoot”字符串。实现步骤① 创建Maven项目② 导入Spri

2021-06-19 10:08:08 214

junit-4.11和hamcrest-core-1.3 的jar包

junit-4.11和hamcrest-core-1.3 的jar包,用于java 单元测试,需要的可以下载

2021-02-26

junit-4.11.jar包

junit-4.11.jar包,有需要的可以下载

2021-02-26

mysql-connector-java.rar

官方下载的MySQL驱动jar包,里面包含了mysql-connector-java-5.1.37-bin.jar 版本包和 mysql-connector-java-8.0.23.jar 版本包。需要的可以下载

2021-02-26

python GUI井字棋

python实现的GUI井字棋游戏,精美的开始界面及开始按钮 游戏功能: 机器人:简单的AI人工智能算法 玩家:鼠标操作

2020-07-20

python推箱子游戏

推箱子游戏,自带音效,内置16关卡。 游戏功能: 人物移动:可使用键盘的方向盘或“wsad” 移动撤回:按“b”键可以使人物的回到上一步位置

2020-07-20

python实现的学生信息管理系统—GUI界面版

设计一个GUI界面的学生信息管理系统,方便保存学生的部分信息。 有五类功能: 1、 增加学生信息:输入姓名、学号、年龄、手机号 2、 修改学生信息:输入新的姓名、学号、年龄、手机号 3、 删除学生信息:以学号为索引 4、 查询学生信息:以学号为索引 5、 显示学生信息:一条一条整页显示。

2020-06-07

python界面图书管理系统—GUI界面版

设计一个GUI界面的系统,模拟图书管理,一个面向学生和学校管理员的系统,图书信息以txt文件存在本地。 管理员:查询图书 增加图书 删除图书 学生:借阅图书 归还图书 任何一个操作都会将所更新的图书信息存入本地txt文件。

2020-06-07

python实现GUI界面的ATM系统

设计一个GUI界面的ATM系统,该系统可以实现现实生活中ATM机器的大部分功能,涉及到插卡,退卡,取款,存款等操作。 用户插卡:选择已有卡号,输入密码进行登录。 ATM系统功能:查询余额; 转账:输入乙方银行卡和转账金额; 存款; 流水记录:查询银行卡账单 取款; 退卡。

2020-06-07

python实现GUI界面购物商城

python实现GUI界面的购物商城,商城上顾客可以购买任意东西,平台上分为两个身份,一个身份是售货员,一个身份是顾客,售货员负责进货,顾客负责买东西。 功能: 售货员->增加商品到仓库里、从仓库里删除商品 顾客->选择商品加购购物车,最后结算 购物车->结算、清空

2020-06-07

空空如也

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

TA关注的人

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