![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javaSE
keep gorgeous
这个作者很懒,什么都没留下…
展开
-
多线程(哲学家吃饭问题)代码实现
哲学家进餐问题描述有五个哲学家,他们的生活方式是交替地进行思考和进餐,哲学家们共用一张圆桌,分别坐在周围的五张椅子上,在圆桌上有五个碗和五支筷子,平时哲学家进行思考,饥饿时便试图取其左、右最靠近他的筷子,只有在他拿到两支筷子时才能进餐,该哲学家进餐完毕后,放下左右两只筷子又继续思考。约束条件(1)只有拿到两只筷子时,哲学家才能吃饭。(2)如果筷子已被别人拿走,则必须等别人吃完之后才能拿...原创 2020-01-05 18:39:56 · 902 阅读 · 0 评论 -
多线程死锁java代码实现
线程中发生死锁的原理:执行多线程任务中,出现了多个同步,即存在多个锁对象,且在一个同步中嵌套了其他的同步,可以这样简单理解,有一个线程任务,在获得锁a之后执行一些操作,接着需要获得锁b才能执行接下来的操作,另一个类,正好与该类相反,先获取锁a,执行,再获取锁b执行,存在某一时刻,二者都进入了获取第二个锁资源的时刻,但是run()方法未执行完毕,也不会释放锁资源,两个线程将会处于无限等待状态,造...原创 2020-01-05 16:45:53 · 682 阅读 · 0 评论 -
生产者与消费者的代码实现(等待与唤醒机制)
一,线程安全问题的产生:简单总结,线程安全问题是由于多个线程对全局变量或者静态变量进行了写操作。二,线程安全问题的处理:线程同步(Synchronized)线程同步的两种方式:同步代码块,同步方法synchronized(锁对象){有出现对全局或静态变量执行写操作的代码}public synchronized void method{ 可能会产生线程安全问题的代...原创 2020-01-05 15:13:23 · 368 阅读 · 3 评论 -
多线程(笔记整理)
一,进程,线程,多线程的概念进程:一般指正在运行的某个程序,当一个程序进入内存运行,就变为一个进程。线程:进程的最小执行单元,一个进程至少包含一个线程多线程:简单理解,一个进程中有多个线程在同时执行。二,程序运行原理分时调度(所有线程轮流使用CPU的使用权)抢占式调度(优先级高的程序优先使用CPU的执行权)三,创建线程的方式1,创建一个类并继承Thread,重写Th...原创 2020-01-05 10:38:55 · 147 阅读 · 0 评论 -
基于适配器模式下的装饰者模式
有些类被final修饰的类,想继承进行方法的扩充,但却不能被继承。有些类想使用它的方法,但是却又不想继承,这两种情况就是装饰者的应用场景:本质就是将该类,成员变量的方式实现调用方法,并进行补充代码实现:interface Factory{ String productFunction();}//基础类实现该接口,返回“商品”的字符串final class Base...原创 2019-12-28 11:45:19 · 102 阅读 · 0 评论 -
java设计模式适配器
适配者模式即是将一个接口转化为另一个接口方式1:类适配器:继承真正的功能类,并实现对外开放的接口,在实现抽象方法时,直接调用父类的方法即可,即是super。function(), main方法使用时以规定接口的类型而实质创建该实现类对象调用方法时,实际上执行的是功能类的方法。(体现了多态调用)方式2:对象适配器:仅仅实现对外开放的接口,将真正的功能类作为适配器类的成员变量,并必须设置有参的...原创 2019-12-27 12:03:46 · 74 阅读 · 0 评论 -
Map集合存储大于9的16进制数据以实现十进制对任意数制转换
对于大于9 的数据而言,其16进制的表现形式是从A-F,因此需要Map集合以键值对的形式对数据进行一一映射,以方便进行获取不同的进制的相互转化。在该代码的实现过程中,主要是利用java.util.HashMap包,以及lang包下的String类的方法,charAt(),获得指定索引下的字符,并将其+"",的方式转化为字符串,以利用StringBuilder对字符串的索引值为0开始...原创 2019-12-25 08:57:44 · 214 阅读 · 0 评论