58 lines
2.3 KiB
TypeScript
58 lines
2.3 KiB
TypeScript
import { MockMethod } from 'vite-plugin-mock'
|
|
|
|
export default [
|
|
{
|
|
url: '/wiki/api/v1/reader/blogs',
|
|
method: 'get',
|
|
response: () => {
|
|
return [
|
|
{
|
|
bid: "string",
|
|
btId: "string",
|
|
btName: "string",
|
|
title: "string",
|
|
blog_prex: "string",
|
|
content: "string"
|
|
},
|
|
{
|
|
bid: "string",
|
|
btId: "string",
|
|
btName: "string",
|
|
title: "string",
|
|
blog_prex: "string",
|
|
content: "string"
|
|
},
|
|
]
|
|
}
|
|
},
|
|
{
|
|
url: '/wiki/api/v1/reader/blog/string',
|
|
method: 'get',
|
|
response: () => {
|
|
return {
|
|
bid: "1",
|
|
btId: "2",
|
|
btName: "3",
|
|
title: "1.2 java neicun",
|
|
blog_prex: "5",
|
|
content: "关键字volatile是java虚拟机提供的最轻量级的同步机制。\n当一个变量被定义为volatile时,它具备两种特性。\n第一种是**可见性**。\n即每次get时,强制刷新。\n一个误解区,字节码就是原子操作,这是不对的,一个字节码指令在解释执行时,如果是编译执行,一条字节码会有可能被转化为若干个本地机器指令。此处,用-XX:+PrintAssembly参数输出反汇编来分析。\n\n第二种是,**有序性**。\n即,禁止指令重排序(Instruction Recorder)优化。\n被volatile修饰的变量,赋值后会多执行一个\"lock addl\"操作,这个操作相当于一个memory barrier(内存屏障),指令重拍时,不能把后面的指令排序到内存屏障前面去,只有一个处理器访问时,不需要内存屏障。\naddl 是一个空操作,(把ESP寄存器的值 + 0),这个操作相当于把缓存中的变量做了一次store和write操作。\nlock iddl指令把修改同步到内存时,意味着所有的之前的操作都已完成,便形成了指令重排序无法穿越内存屏障的效果。\n针对于long和double的类型变量,不通虚拟机是有着不同的实现,此处不做描述。\n",
|
|
}
|
|
}
|
|
},
|
|
{
|
|
url: '/wiki/api/v1/reader/blog_type',
|
|
method: 'get',
|
|
response: () => {
|
|
return [
|
|
{
|
|
btId: "string",
|
|
btName: "string",
|
|
},
|
|
{
|
|
btId: "string",
|
|
btName: "string",
|
|
},
|
|
]
|
|
}
|
|
},
|
|
] as MockMethod[] |