前言 在多线程环境下,JDK给开发者提供了许多的组件供用户使用(主要在java.util.concurrent下),使得用户不需要再去关心在具体 场景下要如何写出同时兼顾线程安全性与高效率的代码。之前讲过的线程池、BlockingQueue都是在java.util.concurrent下的 组件,T ...
分类:
编程语言 时间:
2016-06-15 19:12:16
阅读次数:
255
脏读 一个常见的概念。在多线程中,难免会出现在多个线程中对同一个对象的实例变量进行并发访问的情况,如果不做正确的同步处理,那么产生的后果就是"脏读",也就是取到的数据其实是被更改过的。 多线程线程安全问题示例 看一段代码: public class ThreadDomain13 { private ...
分类:
编程语言 时间:
2016-06-15 19:11:49
阅读次数:
171
ThreadLocal的作用 从上一篇对于ThreadLocal的分析来看,可以得出结论:ThreadLocal不是用来解决共享对象的多线程访问问题的, 通过ThreadLocal的set()方法设置到线程的ThreadLocal.ThreadLocalMap里的是是线程自己要存储的对象,其他线程 ...
分类:
编程语言 时间:
2016-06-15 19:09:58
阅读次数:
214
ReentrantLock ReentrantLock,一个可重入的互斥锁,它具有与使用synchronized方法和语句所访问的隐式监视器锁相同的一些基本行为和语义,但功能更强大。 ReentrantLock基本用法 先来看一下ReentrantLock的基本用法: public class Th ...
分类:
编程语言 时间:
2016-06-15 19:08:56
阅读次数:
234
Java初始化顺序(转来的) 1在new B一个实例时首先要进行类的装载。(类只有在使用New调用创建的时候才会被java类装载器装入) 2,在装载类时,先装载父类A,再装载子类B3,装载父类A后,完成静态动作(包括静态代码和变量,它们的级别是相同的,安装代码中出现的顺序初始化)4,装载子类B后,完 ...
分类:
编程语言 时间:
2016-06-15 19:07:04
阅读次数:
137
Queue是什么 队列,是一种数据结构。除了优先级队列和LIFO队列外,队列都是以FIFO(先进先出)的方式对各个元素进行排序的。无论使用哪种排序方式,队列的头都是调用remove()或poll()移除元素的。在FIFO队列中,所有新元素都插入队列的末尾。 Queue中的方法 Queue中的方法不难 ...
分类:
编程语言 时间:
2016-06-15 19:05:26
阅读次数:
275
前言 死 锁单独写一篇文章是因为这是一个很严重的、必须要引起重视的问题。这不是夸大死锁的风险,尽管锁被持有的时间通常很短,但是作为商业产品的应用程序每天可 能要执行数十亿次获取锁->释放锁的操作,只要在这数十亿次操作中只要有一次发生了错误,就可能导致程序中发生死锁,并且即使通过压力测试也不可能 找出 ...
分类:
编程语言 时间:
2016-06-15 19:05:41
阅读次数:
255
[1]定义 [2]整数 [3]浮点数 [4]科学记数法 [5]数值精度 [6]数值范围 [7]特殊数值 [8]转成数值 [9]实例方法 ...
分类:
编程语言 时间:
2016-06-15 19:05:13
阅读次数:
281
读写锁ReentrantReadWriteLock概述 大型网站中很重要的一块内容就是数据的读写,ReentrantLock虽然具有 完全互斥排他的效果(即同一时间只有一个线程正在执行lock后面的任务),但是效率非常低。所以在JDK中提供了一种读写锁 ReentrantReadWriteLock, ...
分类:
编程语言 时间:
2016-06-15 19:05:53
阅读次数:
272
线程组 可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线程,这样的组织结构有点类似于树的形式,如图所示: 线程组的作用是:可以批量管理线程或线程组对象,有效地对线程或线程组对象进行组织。 线程关联线程组:1级关联 所谓1级关联就是父对象中有子对象,但并不创建孙对 ...
分类:
编程语言 时间:
2016-06-15 19:04:14
阅读次数:
192
实例一 public class SimpleThread extends Thread{ public SimpleThread(){ //构造函数可以初始化一些参数 } @Override public void run() { System.out.println("thread start. ...
分类:
编程语言 时间:
2016-06-15 19:03:13
阅读次数:
149
因为本人数学水平不高,却偏偏要理解那些基于概率和数学的算法,本篇主要收集记录一些平时看到的对常用或者经典算法讲解的通俗易懂的文章,以备后面用到查看,也可以提供给大家作为参考,毕竟那么高深的算法,不是一上来就能看懂的。 由于平时不定会看到什么算法,所以看到好的文章就添加过来,所以本文是不定时更新的, ...
分类:
编程语言 时间:
2016-06-15 19:01:05
阅读次数:
139
python 编写server的步骤: 1. 第一步是创建socket对象。调用socket构造函数。如: socket = socket.socket( family, type ) family参数代表地址家族,可为AF_INET或AF_UNIX。AF_INET家族包括Internet地址,AF ...
分类:
编程语言 时间:
2016-06-15 18:59:26
阅读次数:
241
struct用法 第一种 只有结构体定义 struct student{ char name[20]; int age; char class; }; 这里的struct student就相当于int等数据类型,可以用struct student定义变量,如struct student aaa,就类 ...
分类:
编程语言 时间:
2016-06-15 18:57:23
阅读次数:
192
互斥锁是最简单的线程同步机制,Python提供的Condition对象提供了对复杂线程同步问题的支持。Condition被称为条件变量,除了提供与Lock类似的acquire和release方法外,还提供了wait和notify方法。线程首先acquire一个条件变量,然后判断一些条件。如果条件不满 ...
分类:
编程语言 时间:
2016-06-15 18:56:26
阅读次数:
245
JavaScript 的 Date 最详细解读 http://www.codeceo.com/article/javascript-date-guide.html ...
分类:
编程语言 时间:
2016-06-15 18:57:36
阅读次数:
137
在CentOS 6.X 上面安装 Python 2.7.X CentOS 6.X 自带的python版本是 2.6 , 由于工作需要,很多时候需要2.7版本。所以需要进行版本升级。由于一些系统工具和服务是对 Python 有依赖的,所以升级 Python 版本需要注意。 升级步骤 如何欢乐的,没有痛 ...
分类:
编程语言 时间:
2016-06-15 18:56:20
阅读次数:
236