自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Executor 线程池框架浅解

使用 execute 或者 submit 方法来提交任务,execute 方法没有返回值,submit 方法使用 Future 对象作为返回值,可以通过该对象来跟踪这个任务的执行和获取执行结果。ThreadPoolExecutor 是 Executor 线程池框架的具体实现,是我们在应用程序种定义线程池时最常用的一个类,是 Executor 线程池框架提供给应用程序使用的一个核心类。Future 类提供异步获取任务的执行结果的功能,故可以在应用程序中获取此次提交任务的执行结果。

2022-11-25 20:13:01 165 1

原创 一文读懂 HashMap 原理

只针对 JDK1.8 版本之后的 HashMapHashMap 的底层存储结构为。数组作为 HashMap 的主体,以的形式存储,,支持以 null 值作为 key 或者 value,但也要保证 key 的唯一性,即以 null 作为 key 只能有一个。HashMap 的默认数组初始化大小为16,扩容时变为原来的 2 倍。并且 HashMap 总是以 2 的幂作为 数组的大小。

2022-11-24 19:46:27 230

原创 如何保证线程的同步——AQS线程同步器

AQS 提供了一个基于先入先出队列实现的线程同步器的基础框架。ReentrantLock、CountDownLatch、CyclicBarrier、Semaphore 都是基于 AQS 实现的。AQS 提供两种资源共享方式。

2022-11-23 11:03:54 240

原创 如何保证线程的安全

在多线程编程中,一个不可避免的也是最需要关注的问题就是线程安全。与进程拥有独立的进程空间不一样,一个进程内的多个线程是共享该进程的资源的。由于CPU通常为多核架构,且线程又是并发执行的,所以可能会出现同一时刻存在多个线程同时访问同一个资源的现象。为了解决以上线程对共享资源的并发操作而导致的数据不一致性问题,在JDK层面即可解决并发访问、修改的问题,从而实现线程安全。

2022-11-12 18:53:16 469

原创 高并发基础——Executor 线程池框架(三)

在 Executor 线程池框架的内部实现中,创建或者调度线程池的一个空闲工作线程来执行该任务,在任务执行完成之后,工作线程通知应用主线程。此时应用主线程从 FutureTask 对象实例的 get 方法返回,获取到任务的执行结果。Executor 线程池框架由于是通过内部的线程池的线程来调度执行提交的任务,故任务是异步执行的。在应用主线程中调用 submit 方法提交任务到 Executor 线程池框架内部的线程池,并调用异步结果封装类 FutureTask 的 get 方法阻塞获取任务的执行结果。

2022-11-12 14:29:15 84

原创 高并发基础——Executor 线程池框架(二)

使用 execute 或者 submit 方法来提交任务,execute 方法没有返回值,submit 方法使用 Future 对象作为返回值,可以通过该对象来跟踪这个任务的执行和获取执行结果。实现 Runnable 接口:将该worker 线程对象自身作为一个 task 放到 Worker 内部的线程对象 thread 去执行,在 run 方法中定义该工作线程的工作逻辑。若任务等待队列 workQueue 也满了时,如果线程池当前工作线程数小于 maximumPoolSize,则创建新线程执行该任务。

2022-11-12 11:17:45 77

原创 高并发基础——Executor 线程池框架(一)

ThreadPoolExecutor 是 Executor 线程池框架的具体实现,是我们在应用程序种定义线程池时最常用的一个类,是 Executor 线程池框架提供给应用程序使用的一个核心类。Future 类提供异步获取任务的执行结果的功能,故可以在应用程序中获取此次提交任务的执行结果。继承于 Executor 接口,增加了线程池的关闭、任务执行结果的返回功能。包含一个 execute 方法,表示提交任务给线程池执行。

2022-11-12 10:19:30 166

原创 高并发基础——Thread详解

Thread 类是 Java 提供的线程类,每个 Thread 类对象实例在执行时会对应到一个操作系统线程,其中 Thread 类对象实例的执行是通过调用其 start 方法来启动的。在启动执行之后,对应的操作系统线程会执行该Thread类对象实例的 run 方法,默认情况下 Thread 类的 run 方法什么都不做。

2022-11-10 12:10:42 178

原创 MySQL开发规范

作为一名后端开发程序员,我们离不开与数据库打交道,最近也在做项目,遇到很多数据库上的设计问题,故整理下来与大家分享。

2022-11-05 10:53:18 176

原创 浅解前后端分离项目R类的使用

在controller层中,R类用于接收后端返回的数据,将后端响应的结果传递给前端。

2022-10-02 23:00:08 1309

原创 Windows安装配置Redis

重装过系统,虚拟机也懒得再下了,实在不想再搞个Linux环境了,结果花了半天时间才配好T_T找了不少教程,偶然发现了Windows10下可配置Linux子系统,抛开性能不谈,用起来是真方便,实在是符合我这种懒人,故选择这种方式。

2022-09-30 20:51:30 482

原创 Linux常用的基本命令

绝对路径(以/开头):/home/admin/install.sh相对路径:在admin目录下——install.sh接下来的字符中,以三个为一组,且均为 rwx 的三个参数的组合。其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 - 而已。chgrp [-R] 属组名 文件名-R参数:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会

2022-07-12 15:49:30 996

原创 Linux系统目录结构

/bin:bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。/boot:这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。/dev :dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。/etc:etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。/home:用户的主目录,在 Linux

2022-07-12 13:56:18 42

原创 推荐系统顶会论文总结——KDD 2021

KDD20211.Reinforced Anchor Knowledge Graph Generation for News Recommendation ReasoningAuthor(Institute): Jianxun LianKeyWords: news recommender; knowledge graph; recommendation reasoningDataset: MIND; Bing News2.Model-Agnostic Counterfactual Reasonin

2022-04-11 16:58:53 1541

原创 推荐系统顶会论文总结——RecSys 2021

RecSys20211.Values of User Exploration in Recommender SystemsAuthor(Institute): Minmin ChenKeyWords: reinforcement learning; exploration; serendipity; recommender systems2.Mitigating Confounding Bias in Recommendation via Information BottleneckAuthor(

2022-04-11 16:50:32 766

原创 推荐系统顶会论文总结——SIGIR 2021

SIGIR2021中稿通知 2021.04.191.Looking at CTR Prediction Again: Is Attention All You Need?Author(Institute): Yuan ChengKeyWords: click-through rate prediction; neural networks; self-attention mechanism; factorization machines; discrete choice modelDataset:

2022-04-11 16:46:27 1368

原创 推荐系统顶会论文总结——AAAI 2021

AAAI 20211.Who You Would Like to Share With? A Study of Share Recommendation in Social E-CommerceAuthor(Institute): Junxiong ZhuKeyWords: Share Recommendation; Social E-commerceDataset: Taobao2.A Hybrid Bandit Framework for Diversified Recommendation

2022-04-11 16:39:39 3128

原创 推荐系统顶会论文总结——WWW 2021

WWW 20211.Future-Aware Diverse Trends Framework for RecommendationAuthor(Institute): Yujie LuKeyWords: user modeling; future-aware; diverse trendsDataset: Amazon Books; Steam; MovieLens-1M2.Towards Content Provider Aware Recommender Systems: A Simulat

2022-04-11 16:25:48 649

原创 推荐系统顶会论文总结——WSDM 2021

WSDM 20211.Real-time Relevant Recommendation SuggestionAuthor(Institute): Ruobing XieKeyWords:relevant recommendationDataset:RS-331M2.Diverse User Preference Elicitation with Multi-Armed BanditsAuthor(Institute): Filip RadlinskiKeyWords:preference e

2022-04-11 16:21:20 2595

原创 IDEA使用LibRec

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-11-17 13:42:33 547

原创 区块链数据的安全管理技术初探

区块链是一种特殊的分布式数据库,数据以区块为最小单位进行存储,每个区块具有相同的数据结构,包含区块头和交易信息两部分。区别于普通的分布式数据库,每个节点之间是不可信的,故每个区块头中有唯一的哈希值,并且存有相邻的前一区块头的哈希值,各区块通过哈希值来验证自身数据与前一数据是否一致。若某一区块的内容发生变化,其后的每个区块也会发生相应的改变,故除非改变其后所有区块,否则该区块的内容是无法修改的,篡改一个区块的内容需要耗费极大的代价,这就保证了数据的不可篡改性。由于区块链网络中节点不可信,所有节点需存储数据的

2021-09-22 11:07:26 7406

原创 Java网络爬虫依赖包

<dependencies> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.3</version> </dependency>

2021-03-16 16:49:35 462

原创 IDEA配置Maven

新建项目编辑项目名,组名找到自己下载的maven(其中的setting文件要修改好),User setting file要勾选覆Override,选择自己的settings.xml,(若settings.xml文件中已配置好localrepository,则会自动选中该maven仓库)点击finish完成,完成maven创建...

2021-01-30 17:09:45 66

空空如也

空空如也

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

TA关注的人

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