上一页 1 2 3 4 5 6 7 ··· 15 下一页

2018年9月2日

java 原子性 可见性 有序性

摘要: 原子性 原子性是指一个操作或多个操作要么全部执行完成且执行过程不被中断,要么就不执行。 如向变量x赋值操作 x = 10 是原子性的,就不会出现赋值操作进行到一半(x的低16位赋值成功,高16位没有赋值)而被打断。 原子性的操作若涉及到变量,也意味着在操作过程中该变量不会被其他线程占有。 由java 阅读全文

posted @ 2018-09-02 16:40 Deltadeblog 阅读(244) 评论(0) 推荐(0) 编辑

java volatile

摘要: volatile可以保证变量的可见性 当一个变量定义为volatile后,此变量对所有的线程具有可见性。这里的可见性是指当一个线程修改了这个变量的值,新值对于其他线程来说是可以立即得知的。 每次使用volatile变量前都必须先从主内存刷新最新的值,这保证能看见其他线程对变量所做的修改后的值。每次修 阅读全文

posted @ 2018-09-02 00:14 Deltadeblog 阅读(233) 评论(0) 推荐(0) 编辑

2018年9月1日

java 偏向锁、轻量级锁及重量级锁synchronized原理

摘要: Java对象头与Monitor java对象头是实现synchronized的锁对象的基础,synchronized使用的锁对象是存储在Java对象头里的。 对象头包含两部分:Mark Word 和 Class Metadata Address 其中Mark Word在默认情况下存储着对象的Hash 阅读全文

posted @ 2018-09-01 19:46 Deltadeblog 阅读(34310) 评论(4) 推荐(13) 编辑

2018年8月31日

Lock的lockInterruptibly()方法

摘要: lockInterruptibly()方法能够中断等待获取锁的线程。当两个线程同时通过lock.lockInterruptibly()获取某个锁时,假若此时线程A获取到了锁,而线程B只有等待,那么对线程B调用threadB.interrupt()方法能够中断线程B的等待过程。 示例: 要执行doBu 阅读全文

posted @ 2018-08-31 16:57 Deltadeblog 阅读(2635) 评论(4) 推荐(0) 编辑

synchronized和ReentrantLock

摘要: 相同之处 都是阻塞式的同步,也就是说当如果一个线程获得了对象锁,进入了同步块,其他访问该同步块的线程都必须阻塞在同步块外面等待,而进行线程阻塞和唤醒的代价是比较高的(操作系统需要在用户态与内核态之间来回切换,代价很高,不过可以通过对锁优化进行改善)。 不同之处 实现层次 这两种方式最大区别就是对于S 阅读全文

posted @ 2018-08-31 16:01 Deltadeblog 阅读(187) 评论(0) 推荐(0) 编辑

2018年8月29日

java fail-fast和fail-safe

摘要: 快速失败(fail—fast) 在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(如增加、删除等),则会抛出Concurrent Modification Exception。 输出结果为: 0java.util.ConcurrentModificationException 阅读全文

posted @ 2018-08-29 19:59 Deltadeblog 阅读(162) 评论(0) 推荐(0) 编辑

数组中只出现一次的数字(java实现)

摘要: 问题描述 一个整型数组里除了两个数字之外,其他的数字都出现了偶数次。请写程序找出这两个只出现一次的数字。 解题思路 如果数组中只有一个数字出现奇数次,则将数组中所有的数字做异或可得该数字。 数组中有两个数字出现奇数次,设这两个数字分别为a、b,则将数组中所有的数字做异或得到的是a与 b异或的结果,设 阅读全文

posted @ 2018-08-29 10:13 Deltadeblog 阅读(642) 评论(0) 推荐(0) 编辑

2018年8月27日

Eclipse Build path

摘要: Build Path用于设置Java的构建路径,管理Java工程所包含的资源,使工程结构清晰合理。 包括以下几项: Source Source包括 source folder和output folder source folder:存放.java源文件的根目录; output folder:存放.c 阅读全文

posted @ 2018-08-27 14:39 Deltadeblog 阅读(152) 评论(0) 推荐(0) 编辑

线程池的优点

摘要: 提高资源利用率与响应速度 线程池可以重复利用已经创建了的线程 ,线程的创建和销毁的开销是巨大的,而通过线程池的重用大大减少了这些不必要的开销,当然既然少了这么多消费内存的开销,其线程执行速度也是突飞猛进的提升。 具有可管理性 线程池可以提供定时、定期、单线程、并发数控制等功能。比如通过Schedul 阅读全文

posted @ 2018-08-27 11:02 Deltadeblog 阅读(290) 评论(0) 推荐(0) 编辑

2018年8月23日

MySQL创建计算字段

摘要: 在数据库原有的字段(列)中创建新的字段。 计算字段是运行时在SELECT语句内创建的。 拼接字段 vendors表中存在字段vend_name, vend_country,现在需要创建二者的组合字段vend_name(vend_country) ,并将其命名为vend_title mysql> SE 阅读全文

posted @ 2018-08-23 20:19 Deltadeblog 阅读(127) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 ··· 15 下一页

导航