final类型的成员变量初始化值:
1、声明时候直接赋值
2、构造方法中赋值,如果一个类中有多个构造方法,就要保证在每个构造方法中都要完成对final类型变量的初始化工作
3、静态final成员变量必须在声明时赋值,且不能在构造方法中赋值
4、final成员变量指的是引用不能改变,即该变量的引用不能在指向其他的对象,但是对象的内容是可以改变的,比如stringbuffer可以通过append、remove等对该对象的内容作出改变。...
分类:
编程语言 时间:
2014-07-22 23:03:14
阅读次数:
348
CountDownLatch
类是一个倒计时计数器,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。用给定的计数初始化
CountDownLatch。由于调用了countDown() 方法,所以在当前计数到达零之前,await
方法会一直受阻塞。之后,会释放所有等待的线程,aw...
分类:
编程语言 时间:
2014-05-01 08:21:22
阅读次数:
485
JDK1.5提供了Exchanger用于两个线程的数据交换。两个线程先后到达交换点,先到达的线程会等待后到达的线程,然后两个线程互相交换数据,交换后双方持对方的数据。Exchanger只提供了一个构造器:Exchanger():创建一个新的Exchanger。Exchanger中也只有两个方法:V
...
分类:
编程语言 时间:
2014-05-01 08:18:46
阅读次数:
455
vc基于对话框多线程编程实例——线程之间的通信实例:
分类:
编程语言 时间:
2014-05-01 08:16:04
阅读次数:
337
JDK1.5提供了阻塞队列接口BlockingQueue,它是一个有界阻塞队列。BlockingQueue实现是线程安全的,可以安全地与多个生产者和多个使用者一起使用。使用时用其实现类ArrayBlockingQueue,它一个由数组支持的有界阻塞队列。此队列按
FIFO(先进先出)原则对元素进行排...
分类:
编程语言 时间:
2014-05-01 06:58:46
阅读次数:
373
1 #include 2 #include 3 #include 4 #include 5 6
typedef void* (*fun)(void*); 7 8 fun fun1, fun2; 9 10 pthread_mutex_t pmu =
PTHREAD_MUTEX_INITI...
分类:
编程语言 时间:
2014-05-01 06:36:02
阅读次数:
427
在进入java平台的线程对象之前,基于基础篇(一)的一些问题,我先插入两个基本概念。
[线程的并发与并行]
在单CPU系统中,系统调度在某一时刻只能让一个线程运行,虽然这种调试机制有多种形式(大多数是时间片轮巡为主),但无论如何,要通过不断切换需要运行的线程让其运行的方式就叫并发(concurr.....
分类:
编程语言 时间:
2014-05-01 06:09:22
阅读次数:
459
一,多线程概述
1. 进程和线程
计算机的核心是CPU,它承担了所有的计算任务.它就像一座工厂,时刻在运行.假定工厂的电力有限,一次只能给一个车间使用,也就是说,一个车间开工的时候,其他车间都必须停工,背后的含义就是,单个CPU一次只能运行一个任务.进程就好比工厂的车间,它代表CPU所能处理的单个任务,任一时刻,CPU总是运行一个进程,其他进程处于非运行状态.一个车间里,可以有很多工人,他们协...
分类:
编程语言 时间:
2014-04-29 13:43:20
阅读次数:
276
多线程编程--异步转同步之CountDownLatch...
分类:
编程语言 时间:
2014-04-29 13:23:21
阅读次数:
412
在Java多线程程序中,由于线程调度,指令间的次序在每次运行时都可能不相同,有时候,我们需要得到指令次序,用来分析程序的行为。这样细粒度的底层行为用一般方法很难完成,我们需要借助 JVM Tool Interface,即JVMTI,来帮助我们获取Java虚拟机执行时的信息。本文先介绍编写JVMTI程序的基本框架,然后介绍如何使用JVMTI来获取多线程程序中指令之间的次序。...
分类:
编程语言 时间:
2014-04-29 13:11:22
阅读次数:
892