Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wushizhenking
CS-Notes
提交
695989ba
C
CS-Notes
项目概览
wushizhenking
/
CS-Notes
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
CS-Notes
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
695989ba
编写于
3月 23, 2019
作者:
C
CyC2018
提交者:
GitHub
3月 23, 2019
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #632 from steverao/mq-update-raozh-190323-1
语言校验
上级
f3b765d6
f7424312
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
11 addition
and
11 deletion
+11
-11
docs/notes/Java 并发.md
docs/notes/Java 并发.md
+3
-3
docs/notes/Redis.md
docs/notes/Redis.md
+4
-4
docs/notes/剑指 Offer 题解 - 20~29.md
docs/notes/剑指 Offer 题解 - 20~29.md
+2
-2
docs/notes/攻击技术.md
docs/notes/攻击技术.md
+2
-2
未找到文件。
docs/notes/Java 并发.md
浏览文件 @
695989ba
<!-- GFM-TOC -->
<!-- GFM-TOC -->
*
[
一、线程状态转换
](
#一线程状态转换
)
*
[
新建(New)
](
#新建new
)
*
[
可运行(Runnable)
](
#可运行runnable
)
...
...
@@ -264,7 +264,7 @@ public void run() {
## InterruptedException
通过调用一个线程的 interrupt() 来中断该线程,如果该线程处于阻塞、限期等待或者无限期等待状态,那么就会抛出 InterruptedException,从而提前结束该线程。但是不能中断 I/O 阻塞和 synchronized 锁阻塞。
通过调用一个线程的 interrupt() 来中断该线程,如果该线程处于阻塞、
有
限期等待或者无限期等待状态,那么就会抛出 InterruptedException,从而提前结束该线程。但是不能中断 I/O 阻塞和 synchronized 锁阻塞。
对于以下代码,在 main() 中启动一个线程之后再中断它,由于线程中调用了 Thread.sleep() 方法,因此会抛出一个 InterruptedException,从而提前结束线程,不执行之后的语句。
...
...
@@ -1198,7 +1198,7 @@ public static void main(String[] args) throws InterruptedException {
可见性指当一个线程修改了共享变量的值,其它线程能够立即得知这个修改。Java 内存模型是通过在变量修改后将新值同步回主内存,在变量读取前从主内存刷新变量值来实现可见性的。
主要有
有
三种实现可见性的方式:
主要有三种实现可见性的方式:
-
volatile
-
synchronized,对一个变量执行 unlock 操作之前,必须把变量值同步回主内存。
...
...
docs/notes/Redis.md
浏览文件 @
695989ba
<!-- GFM-TOC -->
<!-- GFM-TOC -->
*
[
一、概述
](
#一概述
)
*
[
二、数据类型
](
#二数据类型
)
*
[
STRING
](
#string
)
...
...
@@ -363,7 +363,7 @@ List 是一个双向链表,可以通过 lpop 和 lpush 写入和读取消息
在分布式场景下,无法使用单机环境下的锁来对多个节点上的进程进行同步。
可以使用 Re
id
s 自带的 SETNX 命令实现分布式锁,除此之外,还可以使用官方提供的 RedLock 分布式锁实现。
可以使用 Re
di
s 自带的 SETNX 命令实现分布式锁,除此之外,还可以使用官方提供的 RedLock 分布式锁实现。
## 其它
...
...
@@ -405,7 +405,7 @@ Redis 可以为每个键设置过期时间,当键过期时,会自动删除
可以设置内存最大使用量,当内存使用量超出时,会施行数据淘汰策略。
Re
id
s 具体有 6 种淘汰策略:
Re
di
s 具体有 6 种淘汰策略:
| 策略 | 描述 |
| :--: | :--: |
...
...
@@ -555,7 +555,7 @@ Sentinel(哨兵)可以监听集群中的服务器,并在主服务器进入
分片是将数据划分为多个部分的方法,可以将数据存储到多台机器里面,这种方法在解决某些问题时可以获得线性级别的性能提升。
假设有 4 个 Re
id
s 实例 R0,R1,R2,R3,还有很多表示用户的键 user:1,user:2,... ,有不同的方式来选择一个指定的键存储在哪个实例中。
假设有 4 个 Re
di
s 实例 R0,R1,R2,R3,还有很多表示用户的键 user:1,user:2,... ,有不同的方式来选择一个指定的键存储在哪个实例中。
-
最简单的方式是范围分片,例如用户 id 从 0
\~
1000 的存储到实例 R0 中,用户 id 从 1001
\~
2000 的存储到实例 R1 中,等等。但是这样需要维护一张映射范围表,维护操作代价很高。
-
还有一种方式是哈希分片,使用 CRC32 哈希函数将键转换为一个数字,再对实例数量求模就能知道应该存储的实例。
...
...
docs/notes/剑指 Offer 题解 - 20~29.md
浏览文件 @
695989ba
<!-- GFM-TOC -->
<!-- GFM-TOC -->
*
[
20. 表示数值的字符串
](
#20-表示数值的字符串
)
*
[
题目描述
](
#题目描述
)
*
[
解题思路
](
#解题思路
)
...
...
@@ -318,7 +318,7 @@ private void swap(TreeNode root) {
# 28 对称的二叉树
[
NowCder
](
https://www.nowcoder.com/practice/ff05d44dfdb04e1d83bdbdab320efbcb?tpId=13&tqId=11211&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
)
[
NowC
o
der
](
https://www.nowcoder.com/practice/ff05d44dfdb04e1d83bdbdab320efbcb?tpId=13&tqId=11211&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
)
## 题目描述
...
...
docs/notes/攻击技术.md
浏览文件 @
695989ba
<!-- GFM-TOC -->
<!-- GFM-TOC -->
*
[
一、跨站脚本攻击
](
#一跨站脚本攻击
)
*
[
二、跨站请求伪造
](
#二跨站请求伪造
)
*
[
三、SQL 注入攻击
](
#三sql-注入攻击
)
...
...
@@ -43,7 +43,7 @@
### 2. 过滤特殊字符
例如将
`<`
转义为
`<`
,将
`>`
转义为
`>`
,从而避免 HTML 和 Jascript 代码的运行。
例如将
`<`
转义为
`<`
,将
`>`
转义为
`>`
,从而避免 HTML 和 Ja
va
script 代码的运行。
富文本编辑器允许用户输入 HTML 代码,就不能简单地将
`<`
等字符进行过滤了,极大地提高了 XSS 攻击的可能性。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录