自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 Java多线程随笔(4):线程通信

生产者消费者问题生产者消费者问题是在一个系统中,存在生产者和消费者两种角色,他们通过内存缓冲区进行通信,生产者生产消费者需要的资料,消费者把资料做成产品。synchronized只能实现线程同步,无法实现线程通信。Java的Object基类就提供了几个方法解决线程通信问题:注意:只能在同步方法或者同步块中使用解决方法1. 管程法...

2020-10-06 13:58:19 420

原创 Java多线程随笔(3):线程同步

线程同步多个线程访问同一个对象,并且某些线程还想修改这个对象,这个时候就需要线程同步;线程同步就是一种等待机制,多个需要同时访问此对象的线程进入这个对象的等待池,形成队列,等待前面线程使用完毕,下一个线程再使用;形成条件:队列+锁(synchronized)不安全案例...

2020-09-29 01:11:56 722

原创 Java多线程随笔(2):线程状态

探究Thread类1. lambda 表达式优势:避免匿名内部类定义过多 可以让代码更简洁 去掉没有意义的代码,只留下核心逻辑函数式接口:任何接口,如果只包含一个抽象方法,那么他就是一个函数式接口。对于函数式接口,我们可以通过lambda表达式来创建接口的对象。Runnable接口只有符合函数式接口,因此可以在实现Runnable接口时直接使用Lambda表达式。各种接口实现举例:public class Lambda { //3.静态内部类 ...

2020-09-27 23:45:25 511

原创 Java多线程随笔(1):线程的实现

进程和线程的基本概念进程是程序执行和资源分配的基本单位,线程是CPU调度和执行的基本单位;线程创建的三种方式1. 继承Thread类关于Thread类:Thread类继承Object类,同时实现了Runnable接口。实现方法:①声明一个类,继承Thread类,②重写run()方法,③创建线程对象,调用start()方法。不建议使用:OOP单继承局限性。public class TestThread1 extends Thread { @Override pub

2020-09-25 22:06:15 531

原创 回溯算法经典案例 1 ——N皇后 Java

问题分析N 皇后问题研究的是如何将 N 个皇后放置在 N×N 的棋盘上,并且使皇后彼此之间不能相互攻击。皇后的走法是:可以横直斜走,格数不限。因此要求皇后彼此之间不能相互攻击,等价于要求任何两个皇后都不能在同一行、同一列以及同一条斜线上。直观的做法是暴力枚举将 N 个皇后放置在 N×N 的棋盘上的所有可能的情况,并对每一种情况判断是否满足皇后彼此之间不相互攻击。暴力枚举的时间复杂度是非常高的,因此必须利用限制条件加以优化。显然,每个皇后必须位于不同行和不同列,因此将 N个皇后放置在 N×N

2020-09-14 20:46:19 1724

原创 经典排序算法1:冒泡排序,选择排序,插入排序,Shell排序

冒泡排序①比较相邻的元素。如果第一个比第二个大,就交换它们两个;②对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;③针对所有的元素重复以上的步骤,除了最后一个;④重复步骤1~3,直到排序完成。public static int[] bubbleSort(int []arr){ if(arr.length <= 1) return null; for(int i=0; i< arr.length

2020-08-27 21:26:17 640

空空如也

空空如也

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

TA关注的人

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