Welcome 微信登录

首页 / 软件开发 / JAVA

使用Eclipse平台共享代码

使用Eclipse平台共享代码

使用Eclipse平台共享代码2011-02-17 IBM Pawel Leszek在团队项目中共享源代码现今的大多数应用程序是由多人组成的团队开发的。即使只涉及几个开发人员的小项目,也需要对源代码的更改进行严格控制。这就是源代码管理软件的任务。源代码版本控制软件必须支持两个核心功能:提供一种方法,能够协调对源代码的更改,并能集成这些更改团队所提交工作的历史记录当团队成员完成新的工作时,通过将这些更改提交到资源库来共享他们的工作。类似地,当他们希望获得最新...
Java线程:新特征-原子量

Java线程:新特征-原子量

Java线程:新特征-原子量2011-02-20leizhimin所谓的原子量即操作变量的操作是“原子的”,该操作不可再分,因此是线程安全的。为何要使用原子变量呢,原因是多个线程对单个变量操作也会引起一些问题。在Java5之前,可以通过volatile、synchronized关键字来解决并发访问的安全问题,但这样太麻烦。Java5之后,专门提供了用来进行单变量多线程并发安全访问的工具包java.util.concurrent.at...
Java线程:新特征-阻塞栈

Java线程:新特征-阻塞栈

Java线程:新特征-阻塞栈2011-02-20leizhimin对于阻塞栈,与阻塞队列相似。不同点在于栈是“后入先出”的结构,每次操作的是栈顶,而队列是“先进先出”的结构,每次操作的是队列头。这里要特别说明一点的是,阻塞栈是Java6的新特征。、Java为阻塞栈定义了接口:java.util.concurrent.BlockingDeque,其实现类也比较多,具体可以查看JavaAPI文档。下面看一个简单例...
Java线程:新特征-阻塞队列

Java线程:新特征-阻塞队列

Java线程:新特征-阻塞队列2011-02-20leizhimin阻塞队列是Java5线程新特征中的内容,Java定义了阻塞队列的接口 java.util.concurrent.BlockingQueue,阻塞队列的概念是,一个指定长度的队列,如果队列满了,添加新元素的操作会被阻塞等待,直到有空位为止。同样,当队列为空时候,请求队列元素的操作同样会阻塞等待,直到有可用元素为止。有了这样的功能,就为多线程的排队等候的模型实现开辟了便捷通道,非常有用。jav...
Java线程:新特征-信号量

Java线程:新特征-信号量

Java线程:新特征-信号量2011-02-20leizhimin因此,本人认为,这个信号量类如果能返回数目,还能知道哪些对象在等待,哪些资源可使用,就非常完美了,仅仅拿到这些概括性的数字,对精确控制意义不是很大。目前还没想到更好的用法。下面是一个简单例子:import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.co...
Java线程:新特征-有返回值的线程

Java线程:新特征-有返回值的线程

Java线程:新特征-有返回值的线程2011-02-20 51cto博客 leizhimin在Java5之前,线程是没有返回值的,常常为了“有”返回值,破费周折,而且代码很不好写。或者干脆绕过这道坎,走别的路了。现在Java终于有可返回值的任务(也可以叫做线程)了。可返回值的任务必须实现Callable接口,类似的,无返回值的任务必须Runnable接口。执行Callable任务后,可以获取一个Future的对象,在该对象上调用ge...
Java线程:新特征-线程池

Java线程:新特征-线程池

Java线程:新特征-线程池2011-02-20 51cto博客 leizhimin有关Java5线程新特征的内容全部在java.util.concurrent下面,里面包含数目众多的接口和类,熟悉这部分API特征是一项艰难的学习过程。目前有关这方面的资料和书籍都少之又少,大所属介绍线程方面书籍还停留在java5之前的知识层面上。当然新特征对做多线程程序没有必须的关系,在java5之前通用可以写出很优秀的多线程程序。只是代价不一样而已。线程池的基本思想还是...
Java线程:volatile关键字

Java线程:volatile关键字

Java线程:volatile关键字2011-02-20 51cto博客 leizhimin谈及到volatile关键字,不得不提的一篇文章是:《Java 理论与实践: 正确使用 Volatile 变量》,这篇文章对volatile关键字的用法做了相当精辟的阐述。之所以要单独提出volatile这个不常用的关键字原因是这个关键字在高性能的多线程程序中也有很重要的用途,只是这个关键字用不好会出很多问题。首先考虑一个问题,为什么变量需要volatile来修饰呢...
Java线程:并发协作-生产者消费者模型

Java线程:并发协作-生产者消费者模型

Java线程:并发协作-生产者消费者模型2011-02-20 51cto博客 leizhimin实际上,准确说应该是“生产者-消费者-仓储”模型,离开了仓储,生产者消费者模型就显得没有说服力了。对于此模型,应该明确一下几点:1、生产者仅仅在仓储未满时候生产,仓满则停止生产。2、消费者仅仅在仓储有产品时候才能消费,仓空则等待。3、当消费者发现仓储没产品可消费时候会通知生产者生产。4、生产者在生产出可消费产品时候,应该通知等待的消费者去...
Java线程:线程的同步-同步块

Java线程:线程的同步-同步块

Java线程:线程的同步-同步块2011-02-20 51cto博客 leizhimin追其同步的根本的目的,是控制竞争资源的正确的访问,因此只要在访问竞争资源的时候保证同一时刻只能一个线程访问即可,因此Java引入了同步代码快的策略,以提高性能。在上个例子的基础上,对oper方法做了改动,由同步方法改为同步代码块模式,程序的执行逻辑并没有问题。/*** Java线程:线程的同步-同步代码块** @author leizhimin */public cla...
Java线程:线程的同步-同步方法

Java线程:线程的同步-同步方法

Java线程:线程的同步-同步方法2011-02-20 51cto博客 leizhimin线程的同步是Java多线程编程的难点,往往开发者搞不清楚什么是竞争资源、什么时候需要考虑同步,怎么同步等等问题,当然,这些问题没有很明确的答案,但有些原则问题需要考虑,是否有竞争资源被同时改动的问题?在本文之前,请参阅《Java线程:线程的同步与锁》,本文是在此基础上所写的。对于同步,在具体的Java代码中需要完成一下两个操作:把竞争访问的资源标识为private;同...
Java线程:线程的调度-守护线程

Java线程:线程的调度-守护线程

Java线程:线程的调度-守护线程2011-02-20 51cto博客 leizhimin守护线程使用的情况较少,但并非无用,举例来说,JVM的垃圾回收、内存管理等线程都是守护线程。还有就是在做数据库应用时候,使用的数据库连接池,连接池本身也包含着很多后台线程,监控连接个数、超时时间、状态等等。setDaemon方法的详细说明:public final void setDaemon(boolean on)将该线程标记为守护线程或用户线程。当正在运行的线程都...
Java线程:线程的调度-优先级

Java线程:线程的调度-优先级

Java线程:线程的调度-优先级2011-02-20 51cto博客 leizhimin线程的优先级用1-10之间的整数表示,数值越大优先级越高,默认的优先级为5。在一个线程中开启另外一个新线程,则新开线程称为该线程的子线程,子线程初始优先级与父线程相同。/*** Java线程:线程的调度-优先级** @author leizhimin*/public class Test { public static void main(String[...
Java线程:线程的调度-休眠

Java线程:线程的调度-休眠

Java线程:线程的调度-休眠2011-02-20 51cto博客 leizhimin这里要明确的一点,不管程序员怎么编写调度,只能最大限度的影响线程执行的次序,而不能做到精准控制。线程休眠的目的是使线程让出CPU的最简单的做法之一,线程休眠时候,会将CPU资源交给其他线程,以便能轮换执行,当休眠一定时间后,线程会苏醒,进入准备状态等待执行。线程休眠的方法是Thread.sleep(long millis) 和Thread.sleep(long milli...
<< 151 152 153 154 155 156 157 158 159 160 >>