一、什么是线程安全性
编写线程安全的代码
核心在于要对状态访问操作进行管理。
共享,可变的状态的访问 - 前者表示多个线程访问, 后者声明周期内发生改变.
线程安全性
核心概念是正确性。某个类的行为与其规范完全一致。
多个线程同时操作共享的变量,造成线程安全性问题。
* 编写线程安全性代码的三种方法:
不在线程之间共享该状态变量
将状态变量修改为不可变的变量
在访问...
分类:
编程语言 时间:
2014-05-26 05:31:40
阅读次数:
282
一、可见性
什么是可见性?
Java线程安全需要防止某个线程正在使用对象状态而另一个线程在同时修改该状态,而且需要确保当一个线程修改了对象的状态后,其他线程可以看到发生的状态变化。 后者就是可见性的描述即多线程可以实时获取其他线程修改后的状态。
*** 待补充 两个工人同时记录生产产品总数问题
1. 失效数据
可见性出现问题就是其他线程没有获取到修改后的状态,更直观...
分类:
编程语言 时间:
2014-05-24 22:17:11
阅读次数:
246
在C++继承模型中,一个派生类对象表现出来的东西,是其自己的成员加上其基类成员的总和。但这些成员如何摆放,标准并未强制规定。一般而言,先摆放基类成员,内存向高地址增长。
下面从四个部分讨论C++继承模型:
单一继承不含虚函数单一继承并含虚函数多重继承虚拟继承
1、单一继承不含虚函数
这种继承关系很简单,基类子对象包含在了派生类对象中,在内存中连续存放。但有一点需...
分类:
编程语言 时间:
2014-05-26 03:51:22
阅读次数:
295
1.打开我的电脑--属性--高级--环境变量 2.新建系统变量JAVA_HOME 和CLASSPATH
变量名:JAVA_HOME 变量值:C:\Program Files\Java\jdk1.7.0变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_H...
分类:
编程语言 时间:
2014-05-24 09:31:23
阅读次数:
326
分为有参数和无参数,还有THIS的使用方法,可用于传递给类,也可用于调用其它构造方法。public class Book { private String
name; public Book(){ this("this调用有参数的构造方法"); System....
分类:
编程语言 时间:
2014-05-24 09:33:45
阅读次数:
330
最近有点着迷Python,学习基本语法之后,首先从爬虫开始,看了《使用python登录人人网并发表状态》一文后,很感兴趣,然后又曾经苦于人人网聊天记录删除的繁琐,于是决定写一个聊天记录一键删除的小脚本,好啦,废话不多说:#encoding:utf-8import
urllib2, urllib, c...
分类:
编程语言 时间:
2014-05-24 09:35:03
阅读次数:
390
废了2个小时查找jdk版本如何更新本以为是这个的问题原来并不是这个问题因为你还没有导入servlet-api.jar包导入方法:右键你的工程属性,然后如图选择导入的外部jar要到你的tomcat安装目录下的bin目录下选择servlet-api.jar
分类:
编程语言 时间:
2014-05-24 09:37:24
阅读次数:
368
修改common.py把 -Xmx4096m 中的 4096改成2048具体做法:1.
patchrom目录下搜索文件common.py 2.文档中搜索-Xmx4096m 3.-Xmx4096m 改为 -Xmx2048m
分类:
编程语言 时间:
2014-05-24 09:48:41
阅读次数:
252
本文主要就spring注入的连接池使用问题,做简要说明。使用过JedisPool的同学会发现,通过JedisPool获取资源,在使用完毕后,需要显式的将资源放回连接池中,如下:JedisPool
jedisPool;Jedis jedis = jedisPool.getResource();//操作...
分类:
编程语言 时间:
2014-05-24 09:50:22
阅读次数:
332
终于有个C++ 如何调用C#类库的文章,收藏之
在前面,我们看过OpenTK与MOgre,这二个项目都是C#项目,但是他的实现都是C++.他们简单来说就是一个包装层.常见的包装方式有二种,一
种就是我们熟知的显式P/Invoke(DllImport),上面所说的OpenTK就是这种,还有一种就是C+...
分类:
编程语言 时间:
2014-05-24 09:51:48
阅读次数:
318
JavaScript 错误 - Throw、Try 和 CatchJavaScript
测试和捕捉try 语句允许我们定义在执行时进行错误测试的代码块。catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块。JavaScript
语句 try 和 catch 是成对出现的。语法tr...
分类:
编程语言 时间:
2014-05-24 09:53:13
阅读次数:
295
其实union(共用体)的各个成员是以同一个地址开始存放的,每一个时刻只可以存储一个成员,这样就要求它在分配内存单元时候要满足两点:
1.一般而言,共用体类型实际占用存储空间为其最长的成员所占的存储空间; 2.若是该最长的存储空间对其他成员的元类型(如果是数组,取其类型的数据长度,例in...
分类:
编程语言 时间:
2014-05-24 09:54:53
阅读次数:
379
1.耗时的操作使用线程,提高应用程序响应2.并行操作时使用线程,如C/S架构的服务器端并发线程响应用户的请求。3.多CPU系统中,使用线程提高CPU利用率4.改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独
立的运行部分,这样的程序会利于理解和修改。 使用多线程的理由之一....
分类:
编程语言 时间:
2014-05-24 10:20:51
阅读次数:
326
public void doSave(IProgressMonitor monitor) { //
TODO Auto-generated method stub performSave(monitor, getEditorInput());
getCommandStack()...
分类:
编程语言 时间:
2014-05-24 10:30:59
阅读次数:
365
-----------android培训、java培训、java学习型技术博客、期待与您交流!---------注解是java
的一个新的类型(与接口很相似),它与类、接口、枚举是在同一个层次,它们都称作为java
的一个类型(TYPE)。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,...
分类:
编程语言 时间:
2014-05-24 10:46:09
阅读次数:
294
快速排序是笔试面试经常问到的一个排序。因此首先来复习快速排序。时间复杂度:O(n*lgn)
最坏:O(n^2) 空间复杂度:O(lgn),最坏O(n) 不稳定。
分类:
编程语言 时间:
2014-05-24 11:21:29
阅读次数:
326