-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
154 lines (129 loc) · 36.2 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
<!DOCTYPE html><html data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5"><title>我的博客</title><meta name="description"><meta name="author" content="kim yhow"><meta name="copyright" content="kim yhow"><meta name="format-detection" content="telephone=no"><link rel="shortcut icon" href="/img/favicon.ico"><link rel="preconnect" href="//cdn.jsdelivr.net"><link rel="preconnect" href="https://fonts.googleapis.com" crossorigin><link rel="preconnect" href="//busuanzi.ibruce.info"><meta name="twitter:card" content="summary"><meta name="twitter:title" content="我的博客"><meta name="twitter:description"><meta name="twitter:image" content="http://yoursite.com/img/kimyhow.png"><meta property="og:type" content="website"><meta property="og:title" content="我的博客"><meta property="og:url" content="http://yoursite.com/"><meta property="og:site_name" content="我的博客"><meta property="og:description"><meta property="og:image" content="http://yoursite.com/img/kimyhow.png"><meta http-equiv="Cache-Control" content="no-transform"><meta http-equiv="Cache-Control" content="no-siteapp"><script src="https://cdn.jsdelivr.net/npm/js-cookie/dist/js.cookie.min.js"></script><script>const autoChangeMode = 'false'
var t = Cookies.get("theme");
if (autoChangeMode == '1'){
const isDarkMode = window.matchMedia("(prefers-color-scheme: dark)").matches
const isLightMode = window.matchMedia("(prefers-color-scheme: light)").matches
const isNotSpecified = window.matchMedia("(prefers-color-scheme: no-preference)").matches
const hasNoSupport = !isDarkMode && !isLightMode && !isNotSpecified
if (t === undefined){
if (isLightMode) activateLightMode()
else if (isDarkMode) activateDarkMode()
else if (isNotSpecified || hasNoSupport){
console.log('You specified no preference for a color scheme or your browser does not support it. I Schedule dark mode during night time.')
now = new Date();
hour = now.getHours();
isNight = hour < 6 || hour >= 18
isNight ? activateDarkMode() : activateLightMode()
}
} else if (t == 'light') activateLightMode()
else activateDarkMode()
} else if (autoChangeMode == '2'){
now = new Date();
hour = now.getHours();
isNight = hour < 6 || hour >= 18
if(t === undefined) isNight? activateDarkMode() : activateLightMode()
else if (t === 'light') activateLightMode()
else activateDarkMode()
} else {
if ( t == 'dark' ) activateDarkMode()
else if ( t == 'light') activateLightMode()
}
function activateDarkMode(){
document.documentElement.setAttribute('data-theme', 'dark')
if (document.querySelector('meta[name="theme-color"]') !== null){
document.querySelector('meta[name="theme-color"]').setAttribute('content','#000')
}
}
function activateLightMode(){
document.documentElement.setAttribute('data-theme', 'light')
if (document.querySelector('meta[name="theme-color"]') !== null){
document.querySelector('meta[name="theme-color"]').setAttribute('content','#fff')
}
}</script><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/font-awesome@latest/css/font-awesome.min.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@latest/dist/jquery.fancybox.min.css"><link rel="canonical" href="http://yoursite.com/"><link rel="preload" href="/img/8.jpg" as="image"><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Titillium+Web"><script>var GLOBAL_CONFIG = {
root: '/',
algolia: undefined,
localSearch: undefined,
translate: {"defaultEncoding":2,"translateDelay":0,"cookieDomain":"https://xxx/","msgToTraditionalChinese":"繁","msgToSimplifiedChinese":"简"},
copy: {
success: 'Copy successfully',
error: 'Copy error',
noSupport: 'The browser does not support'
},
bookmark: {
title: 'Snackbar.bookmark.title',
message_prev: 'Press',
message_next: 'to bookmark this page'
},
runtime_unit: 'days',
runtime: true,
copyright: undefined,
ClickShowText: undefined,
medium_zoom: false,
fancybox: true,
Snackbar: undefined,
baiduPush: false,
isHome: true,
isPost: false
}</script></head><body><header> <div id="page-header"><span class="pull_left" id="blog_name"><a class="blog_title" id="site-name" href="/">我的博客</a></span><span class="toggle-menu pull_right close"><a class="site-page"><i class="fa fa-bars fa-fw" aria-hidden="true"></i></a></span><span class="pull_right menus"><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fa fa-home"></i><span> 主页</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fa fa-archive"></i><span> 时间轴</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fa fa-tags"></i><span> 标签</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fa fa-folder-open"></i><span> 分类</span></a></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fa fa-link"></i><span> 友链</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fa fa-heart"></i><span> 关于</span></a></div><div class="menus_item"><a class="site-page"><i class="fa-fw fa fa-list" aria-hidden="true"></i><span> 娱乐</span><i class="fa fa-chevron-down menus-expand" aria-hidden="true"></i></a><ul class="menus_item_child"><li><a class="site-page" href="/music/"><i class="fa-fw fa fa-music"></i><span> Music</span></a></li><li><a class="site-page" href="/movies/"><i class="fa-fw fa fa-film"></i><span> Movie</span></a></li></ul></div></div></span></div></header><div id="mobile-sidebar"><div id="menu_mask"></div><div id="mobile-sidebar-menus"><div class="mobile_author_icon"><img class="avatar-img" src="/img/kimyhow.png" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"></div><div class="mobile_post_data"><div class="mobile_data_item is-center"><div class="mobile_data_link"><a href="/archives/"><div class="headline">Articles</div><div class="length_num">94</div></a></div></div><div class="mobile_data_item is-center"> <div class="mobile_data_link"><a href="/tags/"><div class="headline">Tags</div><div class="length_num">58</div></a></div></div><div class="mobile_data_item is-center"> <div class="mobile_data_link"><a href="/categories/"><div class="headline">Categories</div><div class="length_num">14</div></a></div></div></div><hr><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fa fa-home"></i><span> 主页</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fa fa-archive"></i><span> 时间轴</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fa fa-tags"></i><span> 标签</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fa fa-folder-open"></i><span> 分类</span></a></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fa fa-link"></i><span> 友链</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fa fa-heart"></i><span> 关于</span></a></div><div class="menus_item"><a class="site-page"><i class="fa-fw fa fa-list" aria-hidden="true"></i><span> 娱乐</span><i class="fa fa-chevron-down menus-expand" aria-hidden="true"></i></a><ul class="menus_item_child"><li><a class="site-page" href="/music/"><i class="fa-fw fa fa-music"></i><span> Music</span></a></li><li><a class="site-page" href="/movies/"><i class="fa-fw fa fa-film"></i><span> Movie</span></a></li></ul></div></div></div></div><div id="body-wrap"><nav class="full_page" id="nav" style="background-image: url(/img/8.jpg)"><div id="site-info"><div id="site-title"><span class="blogtitle">我的博客</span></div><div id="site-sub-title"><span class="subtitle"></span></div><div id="site-social-icons"><a class="social-icon" href="https://github.com/kim-yhow" target="_blank"><i class="fa fa-github" aria-hidden="true"></i></a><a class="social-icon" href="mailto:[email protected]" target="_blank"><i class="fa fa-envelope" aria-hidden="true"></i></a><a class="social-icon" href="https://blog.csdn.net/qq_32846595" target="_blank"><i class="fa fa-key" aria-hidden="true"></i></a></div></div><div class="scroll-down"><i class="fa fa-angle-down scroll-down-effects"></i></div></nav><main id="content-outer"><div class="layout_page" id="content-inner"><div class="recent-posts" id="recent-posts"><div class="recent-post-item article-container"><div class="post_cover left_radius"><a href="/2020/08/19/Spring-注解开发/" title="No title"><img class="post_bg lazyload" data-src="/img/cover/15.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="No title"></a></div><div class="recent-post-info"> <a class="article-title" href="/2020/08/19/Spring-注解开发/" title="No title">No title</a><time class="post-meta__date"><i class="fa fa-calendar" aria-hidden="true"></i> 2020-08-19</time><span class="article-meta"><span class="article-meta__separator">|</span><i class="fa fa-inbox article-meta__icon" aria-hidden="true"></i><a class="article-meta__categories" href="/categories/java/">java</a></span><div class="content">1. Spring注解开发1.1 Spring原始注解
注解
说明
@Component
使用在类上用于实例化Bean
@Controller
使用在web层类上用于实例化Bean
@Service
使用在service层类上用于实例化Bean
@Repository
使用 ...</div></div></div><div class="recent-post-item article-container"><div class="post_cover right_radius"><a href="/2020/08/15/synchronized-volatile-全面理解/" title="synchronized & volatile 全面理解"><img class="post_bg lazyload" data-src="/img/cover/15.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="synchronized & volatile 全面理解"></a></div><div class="recent-post-info"> <a class="article-title" href="/2020/08/15/synchronized-volatile-全面理解/" title="synchronized & volatile 全面理解">synchronized & volatile 全面理解</a><time class="post-meta__date"><i class="fa fa-calendar" aria-hidden="true"></i> 2020-08-15</time><span class="article-meta"><span class="article-meta__separator">|</span><i class="fa fa-inbox article-meta__icon" aria-hidden="true"></i><a class="article-meta__categories" href="/categories/java/">java</a></span><div class="content">1. CAS
CAS也称为自旋锁
2.用户态和内核态用户态只能访问用户允许访问的内容
内核态可以访问所有内容
jdk早期,synchronized叫做重量级锁,因为申请锁资源必须通过kernel,系统调用。
3.锁升级自旋锁什么时候升级为重量级锁?
为什么有自旋锁还需要重量级锁?
自旋是消耗CPU ...</div></div></div><div class="recent-post-item article-container"><div class="post_cover left_radius"><a href="/2020/08/09/java-volatile/" title="java_volatile"><img class="post_bg lazyload" data-src="/img/cover/5.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="java_volatile"></a></div><div class="recent-post-info"> <a class="article-title" href="/2020/08/09/java-volatile/" title="java_volatile">java_volatile</a><time class="post-meta__date"><i class="fa fa-calendar" aria-hidden="true"></i> 2020-08-09</time><span class="article-meta"><span class="article-meta__separator">|</span><i class="fa fa-inbox article-meta__icon" aria-hidden="true"></i><a class="article-meta__categories" href="/categories/java/">java</a></span><div class="content">1.1多线程下变量的不可见性1.1.1 说明 多线程并发执行下,多个线程修改共享变量,会出现一个线程修改了共享变量的值后,另一个线程无法直接看到修改的新值。
1.2 变量不可见性的内存语义1.2.1 概述JMM(Java Memory Model):java内存模型是java虚拟机规 ...</div></div></div><div class="recent-post-item article-container"><div class="post_cover right_radius"><a href="/2020/08/09/java-concurrent/" title="java_concurrent"><img class="post_bg lazyload" data-src="/img/cover/7.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="java_concurrent"></a></div><div class="recent-post-info"> <a class="article-title" href="/2020/08/09/java-concurrent/" title="java_concurrent">java_concurrent</a><time class="post-meta__date"><i class="fa fa-calendar" aria-hidden="true"></i> 2020-08-09</time><span class="article-meta"><span class="article-meta__separator">|</span><i class="fa fa-inbox article-meta__icon" aria-hidden="true"></i><a class="article-meta__categories" href="/categories/java/">java</a></span><div class="content">一些常用数据结构对应的线程安全类
Atomic原子类型线程池线程池维护若干个线程,处于等待状态
如果有新任务,就分配一个空闲线程执行
如果所有线程都处于忙碌状态,新任务放入队列等待
jdk提供了ExecutorService接口表示线程池:
总结JDK提供了ExecutorService实现了线程池 ...</div></div></div><div class="recent-post-item article-container"><div class="post_cover left_radius"><a href="/2020/08/09/java-ReentrantLock/" title="java_ReentrantLock"><img class="post_bg lazyload" data-src="/img/cover/15.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="java_ReentrantLock"></a></div><div class="recent-post-info"> <a class="article-title" href="/2020/08/09/java-ReentrantLock/" title="java_ReentrantLock">java_ReentrantLock</a><time class="post-meta__date"><i class="fa fa-calendar" aria-hidden="true"></i> 2020-08-09</time><span class="article-meta"><span class="article-meta__separator">|</span><i class="fa fa-inbox article-meta__icon" aria-hidden="true"></i><a class="article-meta__categories" href="/categories/java/">java</a></span><div class="content">ReentrantLock
ReentrantLock可以替代synchronized
ReentrantLock获取锁更安全
必须使用try…finally保证正确获取和释放锁
ReadWriteLock
ReadWriteLock只允许一个线程写入
ReadWriteLock允许多个线程同时读 ...</div></div></div><div class="recent-post-item article-container"><div class="post_cover right_radius"><a href="/2020/08/08/java——wait-和notify/" title="java——wait()和notify() "><img class="post_bg lazyload" data-src="/img/cover/5.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="java——wait()和notify() "></a></div><div class="recent-post-info"> <a class="article-title" href="/2020/08/08/java——wait-和notify/" title="java——wait()和notify() ">java——wait()和notify() </a><time class="post-meta__date"><i class="fa fa-calendar" aria-hidden="true"></i> 2020-08-08</time><span class="article-meta"><span class="article-meta__separator">|</span><i class="fa fa-inbox article-meta__icon" aria-hidden="true"></i><a class="article-meta__categories" href="/categories/java/">java</a></span><div class="content">synchronized 没有解决多线程协调的问题多线程协调运行:当条件不满足时,线程进入等待状态
wait()执行
只能在sychronized中调用wait,wait会释放锁。
总结
在synchronized内部可以调用wait()使线程进入等待状态
必须在已获得的锁对象上调用wait( ...</div></div></div><div class="recent-post-item article-container"><div class="post_cover left_radius"><a href="/2020/08/08/java死锁/" title="java死锁"><img class="post_bg lazyload" data-src="/img/cover/7.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="java死锁"></a></div><div class="recent-post-info"> <a class="article-title" href="/2020/08/08/java死锁/" title="java死锁">java死锁</a><time class="post-meta__date"><i class="fa fa-calendar" aria-hidden="true"></i> 2020-08-08</time><span class="article-meta"><span class="article-meta__separator">|</span><i class="fa fa-inbox article-meta__icon" aria-hidden="true"></i><a class="article-meta__categories" href="/categories/java/">java</a></span><div class="content">java的线程锁可以重入的锁,锁对象也可以不同java123456public void add(int m) {synchronized (1ock) { this.value += m; synchronized (lock) { this.another ...</div></div></div><div class="recent-post-item article-container"><div class="post_cover right_radius"><a href="/2020/08/08/java线程同步/" title="java线程同步"><img class="post_bg lazyload" data-src="/img/cover/14.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="java线程同步"></a></div><div class="recent-post-info"> <a class="article-title" href="/2020/08/08/java线程同步/" title="java线程同步">java线程同步</a><time class="post-meta__date"><i class="fa fa-calendar" aria-hidden="true"></i> 2020-08-08</time><span class="article-meta"><span class="article-meta__separator">|</span><i class="fa fa-inbox article-meta__icon" aria-hidden="true"></i><a class="article-meta__categories" href="/categories/java/">java</a></span><div class="content">1.多线程的问题当多个线程同时运行时,线程的调度由操作系统决定,程序本身无法决定。因此,任何一个线程都有可能在任何指令处被操作系统暂停,然后在某个时间段后继续执行。
这个时候,有个单线程模型下不存在的问题就来了:如果多个线程同时读写共享变量,会出现数据不一致的问题。
2.注意
当对共享变量进行写入时 ...</div></div></div><div class="recent-post-item article-container"><div class="post_cover left_radius"><a href="/2020/08/07/java线程的状态/" title="java线程的状态"><img class="post_bg lazyload" data-src="/img/cover/7.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="java线程的状态"></a></div><div class="recent-post-info"> <a class="article-title" href="/2020/08/07/java线程的状态/" title="java线程的状态">java线程的状态</a><time class="post-meta__date"><i class="fa fa-calendar" aria-hidden="true"></i> 2020-08-07</time><span class="article-meta"><span class="article-meta__separator">|</span><i class="fa fa-inbox article-meta__icon" aria-hidden="true"></i><a class="article-meta__categories" href="/categories/java/">java</a></span><div class="content">线程状态
New 新创建
Runnable运行中
Blocked被阻塞
Waiting等待
Timed Waiting计时等待
Terminated已终止
Thread.join可以等待当前线程结束后,再运行主线程
中断线程
如果线程需要执行一个长时间任务,就可能终端线程
中断线程就是其他线程个该 ...</div></div></div><div class="recent-post-item article-container"><div class="post_cover right_radius"><a href="/2020/08/07/java多线程创建/" title="java多线程创建"><img class="post_bg lazyload" data-src="/img/cover/15.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="java多线程创建"></a></div><div class="recent-post-info"> <a class="article-title" href="/2020/08/07/java多线程创建/" title="java多线程创建">java多线程创建</a><time class="post-meta__date"><i class="fa fa-calendar" aria-hidden="true"></i> 2020-08-07</time><span class="article-meta"><span class="article-meta__separator">|</span><i class="fa fa-inbox article-meta__icon" aria-hidden="true"></i><a class="article-meta__categories" href="/categories/java/">java</a></span><div class="content">1.java多线程的创建创建MyThread类:
1) 从Thread 派生
2)覆盖run()方法
3)创建MyThread实例
4)调用start()启动
继承Runnable:
1)实现Runnable接口
2)覆写run()方法
3)在main()创建Runnable方法
4)创建T ...</div></div></div><nav id="pagination"><div class="pagination"><span class="page-number current">1</span><a class="page-number" href="/page/2/">2</a><span class="space">…</span><a class="page-number" href="/page/10/">10</a><a class="extend next" rel="next" href="/page/2/"><i class="fa fa-fw fa-chevron-right" aria-hidden="true"></i></a></div></nav></div><div class="aside_content" id="aside_content"><div class="card-widget card-info"><div class="card-content"><div class="card-info-avatar is-center"><img class="avatar-img" src="/img/kimyhow.png" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"><div class="author-info__name">kim yhow</div><div class="author-info__description"></div></div><div class="card-info-data"><div class="card-info-data-item is-center"><a href="/archives/"><div class="headline">Articles</div><div class="length_num">94</div></a></div><div class="card-info-data-item is-center"> <a href="/tags/"><div class="headline">Tags</div><div class="length_num">58</div></a></div><div class="card-info-data-item is-center"> <a href="/categories/"><div class="headline">Categories</div><div class="length_num">14</div></a></div></div><div class="card-info-bookmark is-center"><a class="bookmark button--primary button--animated" id="bookmark-it" href="javascript:;" title="Add to bookmark" target="_self"><i class="fa fa-bookmark" aria-hidden="true"></i><span>Add to bookmark</span></a></div><div class="card-info-social-icons is-center"><a class="social-icon" href="https://github.com/kim-yhow" target="_blank"><i class="fa fa-github" aria-hidden="true"></i></a><a class="social-icon" href="mailto:[email protected]" target="_blank"><i class="fa fa-envelope" aria-hidden="true"></i></a><a class="social-icon" href="https://blog.csdn.net/qq_32846595" target="_blank"><i class="fa fa-key" aria-hidden="true"></i></a></div></div></div><div class="card-widget card-announcement"><div class="card-content"><div class="item-headline"><i class="fa fa-bullhorn card-announcement-animation" aria-hidden="true"></i><span>Announcement</span></div><div class="announcement_content">欢迎访问,喜欢就收藏吧 ^_^</div></div></div><div class="card-widget card-recent-post"><div class="card-content"><div class="item-headline"><i class="fa fa-history" aria-hidden="true"></i><span>Recent Post</span></div><div class="aside-recent-item"> <div class="aside-recent-post"><a href="/2020/08/19/Spring-注解开发/"><div class="aside-post-cover"><img class="aside-post-bg lazyload" data-src="/img/cover/15.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" title="No title" alt="No title"></div><div class="aside-post-title"><div class="aside-post_title" href="/2020/08/19/Spring-注解开发/" title="No title">No title</div><time class="aside-post_meta post-meta__date">2020-08-19</time></div></a></div><div class="aside-recent-post"><a href="/2020/08/15/synchronized-volatile-全面理解/"><div class="aside-post-cover"><img class="aside-post-bg lazyload" data-src="/img/cover/15.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" title="synchronized & volatile 全面理解" alt="synchronized & volatile 全面理解"></div><div class="aside-post-title"><div class="aside-post_title" href="/2020/08/15/synchronized-volatile-全面理解/" title="synchronized & volatile 全面理解">synchronized & volatile 全面理解</div><time class="aside-post_meta post-meta__date">2020-08-15</time></div></a></div><div class="aside-recent-post"><a href="/2020/08/09/java-volatile/"><div class="aside-post-cover"><img class="aside-post-bg lazyload" data-src="/img/cover/5.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" title="java_volatile" alt="java_volatile"></div><div class="aside-post-title"><div class="aside-post_title" href="/2020/08/09/java-volatile/" title="java_volatile">java_volatile</div><time class="aside-post_meta post-meta__date">2020-08-09</time></div></a></div><div class="aside-recent-post"><a href="/2020/08/09/java-concurrent/"><div class="aside-post-cover"><img class="aside-post-bg lazyload" data-src="/img/cover/7.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" title="java_concurrent" alt="java_concurrent"></div><div class="aside-post-title"><div class="aside-post_title" href="/2020/08/09/java-concurrent/" title="java_concurrent">java_concurrent</div><time class="aside-post_meta post-meta__date">2020-08-09</time></div></a></div><div class="aside-recent-post"><a href="/2020/08/09/java-ReentrantLock/"><div class="aside-post-cover"><img class="aside-post-bg lazyload" data-src="/img/cover/15.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" title="java_ReentrantLock" alt="java_ReentrantLock"></div><div class="aside-post-title"><div class="aside-post_title" href="/2020/08/09/java-ReentrantLock/" title="java_ReentrantLock">java_ReentrantLock</div><time class="aside-post_meta post-meta__date">2020-08-09</time></div></a></div></div></div></div><div class="card-widget card-categories"><div class="card-content"><div class="item-headline"><i class="fa fa-folder-open" aria-hidden="true"></i><span>Categories</span></div><ul class="aside-category-item"> <li class="aside-category-list"><a class="aside-category-list_link" href="/categories/Android/"><span class="aside-category-list_name">Android</span><span class="aside-category-list_length">3</span></a></li><li class="aside-category-list"><a class="aside-category-list_link" href="/categories/LeetCode/"><span class="aside-category-list_name">LeetCode</span><span class="aside-category-list_length">29</span></a></li><li class="aside-category-list"><a class="aside-category-list_link" href="/categories/java/"><span class="aside-category-list_name">java</span><span class="aside-category-list_length">15</span></a></li><li class="aside-category-list"><a class="aside-category-list_link" href="/categories/linux/"><span class="aside-category-list_name">linux</span><span class="aside-category-list_length">3</span></a></li><li class="aside-category-list"><a class="aside-category-list_link" href="/categories/python/"><span class="aside-category-list_name">python</span><span class="aside-category-list_length">2</span></a></li><li class="aside-category-list"><a class="aside-category-list_link" href="/categories/剑指Offer/"><span class="aside-category-list_name">剑指Offer</span><span class="aside-category-list_length">13</span></a></li><li class="aside-category-list"><a class="aside-category-list_link" href="/categories/图像处理/"><span class="aside-category-list_name">图像处理</span><span class="aside-category-list_length">2</span></a></li><li class="aside-category-list"><a class="aside-category-list_link" href="/categories/机器学习/"><span class="aside-category-list_name">机器学习</span><span class="aside-category-list_length">9</span></a></li><li class="aside-category-list"><a class="aside-category-list_link" href="/categories/深度学习/"><span class="aside-category-list_name">深度学习</span><span class="aside-category-list_length">6</span></a></li><li class="aside-category-list"><a class="aside-category-list_link" href="/categories/神经网络/"><span class="aside-category-list_name">神经网络</span><span class="aside-category-list_length">1</span></a></li><li class="aside-category-list"><a class="aside-category-list_link" href="/categories/算法和数据结构/"><span class="aside-category-list_name">算法和数据结构</span><span class="aside-category-list_length">2</span></a></li><li class="aside-category-list"><a class="aside-category-list_link" href="/categories/网站/"><span class="aside-category-list_name">网站</span><span class="aside-category-list_length">1</span></a></li><li class="aside-category-list"><a class="aside-category-list_link" href="/categories/行人检测/"><span class="aside-category-list_name">行人检测</span><span class="aside-category-list_length">1</span></a></li><li class="aside-category-list"><a class="aside-category-list_link" href="/categories/论文阅读/"><span class="aside-category-list_name">论文阅读</span><span class="aside-category-list_length">6</span></a></li></ul></div></div><div class="card-widget card-tags"><div class="card-content"><div class="item-headline"><i class="fa fa-tags" aria-hidden="true"></i><span>Tags</span></div><div class="card-tag-cloud"><a href="/tags/Android/" style="font-size: 17.33px; color: #999c9f">Android</a> <a href="/tags/CNN/" style="font-size: 17.33px; color: #999c9f">CNN</a> <a href="/tags/DPM/" style="font-size: 16px; color: #999">DPM</a> <a href="/tags/HOG/" style="font-size: 21.33px; color: #99a4b2">HOG</a> <a href="/tags/JVM/" style="font-size: 16px; color: #999">JVM</a> <a href="/tags/LSTM/" style="font-size: 17.33px; color: #999c9f">LSTM</a> <a href="/tags/SIFT/" style="font-size: 16px; color: #999">SIFT</a> <a href="/tags/SVM/" style="font-size: 18.67px; color: #999ea6">SVM</a> <a href="/tags/attention/" style="font-size: 17.33px; color: #999c9f">attention</a> <a href="/tags/hexo/" style="font-size: 16px; color: #999">hexo</a> <a href="/tags/java/" style="font-size: 18.67px; color: #999ea6">java</a> <a href="/tags/java多线程/" style="font-size: 22.67px; color: #99a6b9">java多线程</a> <a href="/tags/linux/" style="font-size: 20px; color: #99a1ac">linux</a> <a href="/tags/lstm/" style="font-size: 16px; color: #999">lstm</a> <a href="/tags/matlab/" style="font-size: 17.33px; color: #999c9f">matlab</a> <a href="/tags/mysql/" style="font-size: 16px; color: #999">mysql</a> <a href="/tags/nlp/" style="font-size: 16px; color: #999">nlp</a> <a href="/tags/opencv/" style="font-size: 16px; color: #999">opencv</a> <a href="/tags/python/" style="font-size: 16px; color: #999">python</a> <a href="/tags/seq2seq/" style="font-size: 17.33px; color: #999c9f">seq2seq</a> <a href="/tags/spring/" style="font-size: 17.33px; color: #999c9f">spring</a> <a href="/tags/wordpress/" style="font-size: 16px; color: #999">wordpress</a> <a href="/tags/与运算/" style="font-size: 16px; color: #999">与运算</a> <a href="/tags/中序遍历/" style="font-size: 16px; color: #999">中序遍历</a> <a href="/tags/二分查找/" style="font-size: 18.67px; color: #999ea6">二分查找</a> <a href="/tags/二叉树/" style="font-size: 20px; color: #99a1ac">二叉树</a> <a href="/tags/前缀和/" style="font-size: 16px; color: #999">前缀和</a> <a href="/tags/动态规划/" style="font-size: 24px; color: #99a9bf">动态规划</a> <a href="/tags/卷积/" style="font-size: 16px; color: #999">卷积</a> <a href="/tags/卷积神经网络/" style="font-size: 16px; color: #999">卷积神经网络</a> <a href="/tags/后缀/" style="font-size: 16px; color: #999">后缀</a> <a href="/tags/哈希表/" style="font-size: 16px; color: #999">哈希表</a> <a href="/tags/图像处理/" style="font-size: 16px; color: #999">图像处理</a> <a href="/tags/多尺度/" style="font-size: 16px; color: #999">多尺度</a> <a href="/tags/多示例学习/" style="font-size: 16px; color: #999">多示例学习</a> <a href="/tags/字典树/" style="font-size: 16px; color: #999">字典树</a> <a href="/tags/层次遍历/" style="font-size: 16px; color: #999">层次遍历</a> <a href="/tags/并查集/" style="font-size: 16px; color: #999">并查集</a> <a href="/tags/广度遍历/" style="font-size: 17.33px; color: #999c9f">广度遍历</a> <a href="/tags/数据结构/" style="font-size: 17.33px; color: #999c9f">数据结构</a> <a href="/tags/数组/" style="font-size: 18.67px; color: #999ea6">数组</a> <a href="/tags/文字识别/" style="font-size: 16px; color: #999">文字识别</a> <a href="/tags/机器学习/" style="font-size: 17.33px; color: #999c9f">机器学习</a> <a href="/tags/枚举/" style="font-size: 16px; color: #999">枚举</a> <a href="/tags/查找/" style="font-size: 17.33px; color: #999c9f">查找</a> <a href="/tags/正则表达式/" style="font-size: 16px; color: #999">正则表达式</a> <a href="/tags/深度学习/" style="font-size: 20px; color: #99a1ac">深度学习</a> <a href="/tags/深度遍历/" style="font-size: 16px; color: #999">深度遍历</a> <a href="/tags/滑动窗口/" style="font-size: 16px; color: #999">滑动窗口</a> <a href="/tags/疑惑运算/" style="font-size: 16px; color: #999">疑惑运算</a> <a href="/tags/算法/" style="font-size: 16px; color: #999">算法</a> <a href="/tags/自适应网络/" style="font-size: 16px; color: #999">自适应网络</a> <a href="/tags/设计模式/" style="font-size: 16px; color: #999">设计模式</a> <a href="/tags/评价指标/" style="font-size: 16px; color: #999">评价指标</a> <a href="/tags/递归/" style="font-size: 16px; color: #999">递归</a> <a href="/tags/链表/" style="font-size: 16px; color: #999">链表</a> <a href="/tags/队列/" style="font-size: 18.67px; color: #999ea6">队列</a> <a href="/tags/面试题/" style="font-size: 18.67px; color: #999ea6">面试题</a></div></div></div><div class="card-widget card-archives"><div class="card-content"><div class="item-headline"><i class="fa fa-archive" aria-hidden="true"></i><span>Archives</span></div><ul class="archive-list"><li class="archive-list-item"><a class="archive-list-link" href="/archives/2020/08/"><span class="archive-list-date">2020年08月</span><span class="archive-list-count">13</span></a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2020/07/"><span class="archive-list-date">2020年07月</span><span class="archive-list-count">2</span></a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2020/06/"><span class="archive-list-date">2020年06月</span><span class="archive-list-count">9</span></a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2020/05/"><span class="archive-list-date">2020年05月</span><span class="archive-list-count">10</span></a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2020/04/"><span class="archive-list-date">2020年04月</span><span class="archive-list-count">12</span></a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2020/03/"><span class="archive-list-date">2020年03月</span><span class="archive-list-count">23</span></a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2019/02/"><span class="archive-list-date">2019年02月</span><span class="archive-list-count">4</span></a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2018/04/"><span class="archive-list-date">2018年04月</span><span class="archive-list-count">8</span></a></li><li class="archive-list-item"><a class="archive-list-link-more" href="/archives" >More</a></li></ul></div></div><div class="card-widget card-webinfo"><div class="card-content"><div class="item-headline"><i class="fa fa-line-chart" aria-hidden="true"></i><span>Info</span></div><div class="webinfo"><div class="webinfo-item"><div class="webinfo-article-name">Article :</div><div class="webinfo-article-count">94</div></div><div class="webinfo-item"><div class="webinfo-runtime-name">Run time :</div><div class="webinfo-runtime-count" id="webinfo-runtime-count" start_date="6/7/2018 00:00:00"> </div></div><div class="webinfo-item"> <div class="webinfo-site-uv-name">UV :</div><div class="webinfo-site-uv-count" id="busuanzi_value_site_uv"></div></div><div class="webinfo-item"><div class="webinfo-site-name">PV :</div><div class="webinfo-site-pv-count" id="busuanzi_value_site_pv"></div></div></div></div></div></div></div></main><footer id="footer" data-type="color"><div id="footer-wrap"><div class="copyright">©2019 - 2020 By kim yhow</div><div class="framework-info"><span>Driven </span><a href="http://hexo.io"><span>Hexo</span></a><span class="footer-separator">|</span><span>Theme </span><a href="https://github.com/jerryc127/hexo-theme-butterfly"><span>Butterfly</span></a></div></div></footer></div><section class="rightside" id="rightside"><div id="rightside-config-hide"><a class="translate_chn_to_cht" id="translateLink" href="javascript:translatePage();" title="Traditional Chinese and Simplified Chinese Conversion" target="_self">繁</a><i class="darkmode fa fa-moon-o" id="darkmode" title="Dark Mode"></i></div><div id="rightside-config-show"><div id="rightside_config" title="Setting"><i class="fa fa-cog" aria-hidden="true"></i></div><i class="fa fa-arrow-up" id="go-up" title="Back to top" aria-hidden="true"></i></div></section><script src="https://cdn.jsdelivr.net/npm/jquery@latest/dist/jquery.min.js"></script><script src="/js/utils.js"></script><script src="/js/main.js"></script><script src="/js/tw_cn.js"></script><script src="https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@latest/dist/jquery.fancybox.min.js"></script><script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script><script src="https://cdn.jsdelivr.net/npm/instant.page@latest/instantpage.min.js" type="module"></script><script src="https://cdn.jsdelivr.net/npm/lazysizes@latest/lazysizes.min.js" async=""></script><script src="https://cdn.jsdelivr.net/npm/typed.js"></script><script>var typed = new Typed(".subtitle", {
strings: '当学习成为一种习惯。,To be the best!'.split(","),
startDelay: 300,
typeSpeed: 100,
loop: true,
backSpeed: 50
});</script></body></html>