如果某个支持两个或者多个动作同时存在,那么这个系统就是并发系统;如果某个支持两个或者多个动作同时执行,那么这个系统就是并行系统。
在并发程序中可以同时拥有两个或者多个线程。如果程序在单核处理器上运行,那么这两个线程将会交替的换入或换出内存,这些线程是同时存在的。
如果程序能够并行...
汪明鑫
6年前 (2018-09-04) 689浏览 0评论
0喜欢
public static void main(String[] args) {
//第一种方式获取Class对象
Student stu1 = new Student();//这一new 产生一个Student对象,一个Class对象。
...
汪明鑫
6年前 (2018-09-04) 576浏览 0评论
1喜欢
任务数量多时,用线程池更快
先看下Executor整体架构
那么Executors是什么?
类比Array、Arrays,Collection、Collections
-s表示工具类
用底层,看顶层,想要用一个框构的底层、实现类,先要看其最顶层
public i...
汪明鑫
6年前 (2018-08-28) 820浏览 1评论
0喜欢
volatile保证可见性不能保证原子性
《深入理解java虚拟机》中:
/**
* volatile变量自增运算测试
*
* @author zzm
*/
public class VolatileTest {
public...
汪明鑫
6年前 (2018-08-28) 751浏览 3评论
0喜欢
Lock更灵活,功能更丰富
public interface Lock {
void lock();
void lockInterruptibly() throws InterruptedException;
boolean tryLock();
...
汪明鑫
6年前 (2018-08-28) 734浏览 0评论
0喜欢
synchronized是java内置关键字,解决共享数据冲突,是一个可重入锁
synchronized( 需要一个任意的对象(锁) ){
代码块中放操作共享数据的代码
多个线程不能同时进行的部分
}
锁就是一个标记
如果用的不是一把锁,则两...
汪明鑫
6年前 (2018-08-28) 707浏览 0评论
0喜欢
设计一个不可重入锁
public class Lock{
private boolean isLocked = false;
public synchronized void lock() throws InterruptedException{
...
汪明鑫
6年前 (2018-08-28) 628浏览 0评论
0喜欢
最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。
GET请求在URL中传送的参数是有长度限制的,而POST没有。
对参数的数据类型,GET只接受ASCII字符,而POST没有限制。
GET比POST更不安全,因为参数直接暴露在URL上,所...
汪明鑫
6年前 (2018-08-28) 698浏览 0评论
0喜欢
【CAS Compare and Swap】
CAS 的关键点在于,系统在硬件层面保证了比较并交换操作的原子性, 处理器使用基于对缓存加锁或总线加锁的方式来实现多处理器之间的原子操作。
CAS 是非阻塞同步的一种常见实现。
CAS不会把线程挂起,性能要好的多,通常是基于...
汪明鑫
6年前 (2018-08-28) 769浏览 0评论
0喜欢
ctrl + insert 添加get/set方法
Ctrl+shift+f 全文检索
shift shift 快速搜索文件
Ctrl+N按名字搜索类
Ctrl+O查看覆盖父类的方法
Ctrl+H查看类的继承关系
Ctrl+alt+t try-catch块
...
汪明鑫
6年前 (2018-08-22) 540浏览 0评论
0喜欢