Java线程范围内的共享数据二



Java线程范围内的共享数据二。

实际上那么Map也就是模拟的ThreadLocal

每一个线程调用全局的ThreadLocal对象的set方法,就相当于往其内部的map记录新的键值对,键是Thread.current,值是data

线程结束后,可以选择调用ThreadLocal的clear()方法,释放内存,当某一个线程死掉后,可以用remove()移走
相关的变量,但是问题是,如何监听得知某个线程即将死亡?

ThreadDeadRequest事件,只说了一点,太含糊,求解惑?
[java] view plaincopy在CODE上查看代码片派生到我的代码片
i[......]

Read more

Java线程范围内的共享数据一



Java线程范围内的共享数据一。线程范围内的共享数据,在JavaEE中比较常用,Android比较少

一个线程调用A,B,C三个模块,模块中的表达式或变量调用访问一个数据,这个数据可以是静态的
另一个线程也调用A,B,C三个模块,模块中的表达式或变量访问的数据,就不是刚才的数据,而是另一个

同样的代码,一个线程身上一分数据

 

  1. import java.util.HashMap;
  2. import java.util.Map;
  3. import java.util.Random;
  4. [......]

Read more

Java多个线程之间处理共享数据的方式

Java多个线程之间处理共享数据的方式

有4个线程,其中两个线程每次对x加1,另外两个每次对x减1,如何实现?

分析:
x就是这4个线程要处理的共享数据,不同种线程有不同的处理方式,但操作的数据是共同的,联想到“窗口买票问题”,但是卖票只是单纯的减。

所以,多个线程访问共享对象或数据的方式,先看,如果每个线程执行的代码相同,那么就可以使用同一个Runnable对象,这个对象中有被共享的数据,如买票问题。

如果每个线程执行的代码不同,肯定需要不用的Runnable对象,有两种方式实现这些不同的Runnable对象之间的数据共享:

第一种:将共享数据封装到一个对象[......]

Read more

Java线程池的基础应用实例源码介绍

Java线程池的基础应用实例源码介绍。

了解:原子性操作类的基础用法

在java5以后,增加很多线程的内容,成为线程得并发库。

在java.util.concurrent包及子包的API帮助文档,上面有对并发库涉及内容

在java.util.concurrent.atomic包,有对基本数据,对数组中的基本数据,类中的基本数据等的操作

AtomicIneger类,可以解决多线程访问整数的问题
AtomicBoolean…..
AtomicArray…操作数组的基本数据
AtomicIntegerFieldUodater<T>,操作类中的基[......]

Read more

appfuse – hibernate search 2常用注解

appfuse – hibernate search 2常用注解。

1. @Indexed
-> index 指定索引名称
2. @Field
-> name 指定当前属性在Lucene Document中存储的名称,默认为属性名
-> store 指定当前属性是否被存储在Lucene index中,可选值为:
1) Store.YES 占用大量的索引空间,支持”投影(projection)”
2) Store.COMPRESS 压缩方式,消耗大量CPU
3) Store.NO (default)
-> index 指定元素索引方式和信息存储类型,[......]

Read more

BlackBerry(黑莓)监听Field属性的变化

BlackBerry(黑莓)监听Field属性的变化。示例:给文本框加入监听器,当非程序设置,也就是用户通过界面修改文本之后触发相应的操作。

//为文本框加入FieldChangeListener监听器
TextField rtf = new TextField(TextField.EDITABLE);
FieldChangeListener rtfListener = new FieldChangeListener() {
public void fieldChanged(Field field, int context) {
if (context != FieldChang[......]

Read more

Hibernate三种状态的区分,以及save,update,saveOrUpdate,merge等的使用

Hibernate三种状态的区分,以及save,update,saveOrUpdate,merge等的使用。

Hibernate的对象有3种状态,分别为:瞬时态(Transient)、 持久态(Persistent)、脱管态(Detached)。处于持久态的对象也称为PO(Persistence Object),瞬时对象和脱管对象也称为VO(Value Object)。
瞬时态
由new命令开辟内存空间的java对象,

eg. Person person = new Person(“xxx”, “xx”);

如果没有变量对该对象进行引用,它将被java虚拟机回收。[......]

Read more

什么是名字空间?

什么是名字空间.

导读:通常我们HTML4.0的代码只是,这里的”xmlns”是什么呢?这个”xmlns”是XHTML namespace的缩写,叫做”名字空间”声明。
DOCTYPE声明好以后,接下来的代码是:
<html xmlns=”http://www.w3.org/1999/xhtml” lang=”gb2312″>
通常我们HTML4.0的代码只是<html>,这里的”xmlns”是什么呢?
这个”xmlns”是XHTML namespace的缩写,叫做”名字空间”声明。名字空间是什么作用呢?阿捷自己的理解是:
由于xml允许你自己定义自己的标识[......]

Read more

swing窗口居中方法实例代码

swing窗口居中方法实例代码。

方法一:

int windowWidth = frame.getWidth(); // 获得窗口宽
int windowHeight = frame.getHeight(); // 获得窗口高
Toolkit kit = Toolkit.getDefaultToolkit(); // 定义工具包
Dimension screenSize = kit.getScreenSize(); // 获取屏幕的尺寸
int screenWidth = screenSize.width; // 获取屏幕的宽
int screenHeight = scr[......]

Read more

java常用字体&颜色

java常用字体&颜色。

public static final Font FONT4 = new Font(“Dialog”, Font.PLAIN, 14);
public static final Font FONT5 = new Font(“Dialog”, Font.PLAIN, 12);
public static final Font FONT1 = new Font(“Dialog”, Font.BOLD, 14);
public static final Font FONT2 = new Font(“Dialog”, Font.BOLD, 12);[......]

Read more