概述 垃圾收集 Garbage Collection 通常被称为“GC”,它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了。 jvm 中,程序计数器、虚拟机栈、本地方法栈都是随线程而生随线程而灭,栈帧随着方法的进入和退出做入栈和出栈操作,实现了自动的内存清理,因此, ...
分类:
其他好文 时间:
2020-01-26 19:18:20
阅读次数:
90
线程状态:new 新生 start 准备就绪 运行状态 阻塞状态(sleep, wait,同步锁) 死亡状态 线程停止:1.标志位停止;2.自动停止,利用次数 线程休眠:模拟延时。每个对象都有一把锁,sleep不会释放锁。Thread.sleep(); 线程礼让:Thread.yield() 线程合 ...
分类:
编程语言 时间:
2020-01-26 13:10:52
阅读次数:
89
1. 文件介绍 2. 打开文件 package main import ( "fmt" "os" ) func main() { //打开文件 //概念说明: file的叫法 //1. file 叫 file对象 //2. file 叫 file指针 //3. file 叫 file文件句柄 fil ...
分类:
其他好文 时间:
2020-01-26 10:24:56
阅读次数:
81
一、应用系统如何与mysql进行一次交互? 最开始接触jdbc的时候,我们系统如何完成一次sql操作呢?第一步,建立数据库连接;第二步,操作sql;第三步,释放连接。 但是每次建立与数据库的连接非常耗时和资源,所以我们加入了连接池的概念。第一步的获取连接是从连接池中获取一个可用的连接,第三步的释放连 ...
分类:
数据库 时间:
2020-01-25 23:36:58
阅读次数:
134
减库存有哪几种方式 下单 当买家下单后,在商品的总库存中减去买家购买数量。下单减库存是最简单的减库存方式,也是控制最精确的一种,下单时直接通过数据库的事务机制控制商品库存,这样一定不会出现超卖的情况。但是你要知道,有些人下完单可能并不会付款。 付款减库存 即买家下单后,并不立即减库存,而是等到有用户 ...
分类:
其他好文 时间:
2020-01-25 16:57:52
阅读次数:
537
Java中每一个对象都可以作为锁,这是synchronized实现同步的基础: 普通同步方法,锁是当前实例对象 静态同步方法,锁是当前类的class对象 同步方法块,锁是括号里面的对象 当一个线程访问同步代码块时,它首先是需要得到锁才能执行同步代码,当退出或者抛出异常时必须要释放锁, Jconsol ...
分类:
其他好文 时间:
2020-01-25 10:17:30
阅读次数:
55
1. sleep(); 每个方法都有一个锁,sleep方法不会释放锁。 会使线程停止运行一段时间,线程将处于阻塞状态。 2. wait() 不绑定资源,线程将处于阻塞状态。 3. jion () 哪个线程调用,哪个就被阻塞。调用在该线程start 之后 4. yield() 调用该方法,让正在执行的 ...
分类:
编程语言 时间:
2020-01-24 14:42:49
阅读次数:
121
概念: 是利用锁的机制来实现同步的。 锁机制有如下两种特性: 互斥性:即在同一时间只允许一个线程持有某个对象锁,通过这种特性来实现多线程中的协调机制,这样在同一时间只有一个线程对需同步的代码块(复合操作)进行访问。互斥性我们也往往称为操作的原子性。 可见性:必须确保在锁被释放之前,对共享变量所做的修 ...
分类:
其他好文 时间:
2020-01-23 22:53:14
阅读次数:
168
先贴一下这个重要的图: 在堆上分配内存 #include <stdlib.h> void *malloc(size_t size); free()函数释放ptr参数指向的内存块: #include <stdlib.h> void free(void *ptr); 给free()传入空指针,则函数什么 ...
分类:
其他好文 时间:
2020-01-23 22:47:18
阅读次数:
70
1 引子 Java中没有指针,不能直接对内存地址的变量进行控制,但Java提供了一个特殊的类Unsafe工具类来间接实现。Unsafe主要提供一些用于执行低级别、不安全操作的方法,如直接访问系统内存资源、自主管理内存资源等,这些方法在提升Java运行效率、增强Java语言底层资源操作能力方面起到了很 ...
分类:
编程语言 时间:
2020-01-23 11:07:29
阅读次数:
81