目标: 线程的状态 线程的几种实现方式 三个线程轮流打印ABC十次 判断线程是否销毁 yield功能 给定三个线程t1,t2,t3,如何保证依次执行 1.基本概念 程序:是一个静态的概念; 进程:是一个动态的概念 a.进程是程序的一次动态执行过程,占用特定的地址空间; b.每个进程都是独立的,包括三 ...
分类:
编程语言 时间:
2019-12-09 13:44:45
阅读次数:
123
关键字 (50个,包含2个保留字)和特殊值(3个)一、基本数据类型相关关键字(8个) 1、关键字介绍(1)byte:单字节类型(2)short:短整型(3)int:整型(4)long:长整型(5)char:单字符类型(6)float:单精度浮点型(7)double:双精度浮点型(8)boolean: ...
分类:
编程语言 时间:
2019-12-03 20:14:48
阅读次数:
117
前置知识了解Java基本语法了解多线程基本知识知识介绍Synchronized简介:作用、地位、不控制并发的后果两种用法:对象锁和类锁多线程访问同步方法的7种情况:是否是static、Synchronized方法等Synchronized的性质:可重入、不可中断原理:加解锁原理、可重入原理、可见性原理Synchronized的缺陷:效率低、不够灵活、无法预判是否成功获取锁常见问题:如何选择Lock
分类:
编程语言 时间:
2019-11-22 01:23:46
阅读次数:
79
同步方法就是在方法前加关键字 synchronized;同步代码块则是在方法内部使用 synchronized 加锁对象相同的话,同步方法锁的范围大于等于同步方法块。一般加锁范围越大,性能越差 同步方法如果是 static 方法,等同于同步方法块加锁在该 Class 对象上 Java 自学指南 Ja ...
分类:
其他好文 时间:
2019-11-16 12:31:49
阅读次数:
86
数据库加锁是修改哪一条加锁,还是在页上加锁,还是在表上加锁,数据库来决定 如果你更改的是两条记录,就在两条记录上加锁,如果你更改的是很多条,这个时候数据库一看一条一条加锁太麻烦,给整个页加锁更省事,或者给整个表加锁更加省事 加锁的级别越大,数据库越省事,数据库越省事,并发性越差,修改一条记录如果给表 ...
分类:
数据库 时间:
2019-11-13 12:51:56
阅读次数:
85
一、现象 /pinter/case/slow?userName=xxx tps很低,响应时间很长,数据库服务器cpu很高(接近100%),应用服务器负载比较低 索引 索引是对数据库表中一列或多列的值进行排序的一种结构,存储了表中的关键字段,使用索引可快速访问数据库表中的特定信息。类似于书籍中的目录。 ...
分类:
数据库 时间:
2019-10-21 19:10:20
阅读次数:
164
defalloc.h : 默认分配器allocator: 早期专用于HP的默认分配器,目前是不被赞成使用的; 仅提供了allocator模板简单封装,重声明(或类型外抛)一些必要的类型Type,此外提供申请和释放内存接口(底层直接使用全局::operator new和::operator delet... ...
分类:
其他好文 时间:
2019-10-10 12:39:17
阅读次数:
100
前言: synchronize会使用,但是对于深层次的知识,不是很清楚,故整理一篇博客。 简介: 能够保证在同一时刻,最多只有一个线程执行该端代码,以达到保证并发安全效果。 两种用法: 对象锁 类锁 对线程访问同步方法的7种情况: synchronize性质: 可重入 不可中断 原理: 加锁原理 可 ...
分类:
其他好文 时间:
2019-10-07 09:44:28
阅读次数:
84
一、什么是sleep()? sleep()是Thread类的方法,导致线程暂停执行的时间,给其他线程执行机会,但是依然保持监控状态,过了指定时间会自动恢复执行,调用sleep()方法不会释放锁对象。 当调用sleep()方法后,当前线程进入阻塞状态。目的是让出cpu给其他线程运行的机会。但是由于sl ...
分类:
编程语言 时间:
2019-10-01 16:26:34
阅读次数:
110
上一篇讲述了并发包下的Lock,Lock可以更好的解决线程同步问题,使之更面向对象,并且ReadWriteLock在处理同步时更强大,那么同样,线程间仅仅互斥是不够的,还需要通信,本篇的内容是基于上篇之上,使用Lock如何处理线程通信。 那么引入本篇的主角,Condition,Condition 将 ...
分类:
编程语言 时间:
2019-09-05 18:40:51
阅读次数:
96