程序线程可分为监控程序线程和用户线程: 可以用Thread的setDaemon()设置。true为监控线程,false为用户线程... 二者区别在于,用户线程会阻止JVM退出,而监控线程则不会, package lession3; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Test { protected JFrame frame; public static void main(String args[]){ Test t=new Test(); } publi ...
当数据同时被多个线程同时修改时,就可能出现破坏,不过可以使用synchronized关键字规定方法和代码块每次只能有一个线程执行,从而防止破坏,直到一个线程退出这个方法或代码块。 java.lang.Object的实例或子类中都有一个销,总是隐式或显式地将synchronized与object类实例相关联,基本类型除外,线程进入同步方法之间,必然先得到与这段代码相并联的对象销,如果前一个线程已经取得,另一个线程也想这样做的,只能阻塞。除监控外,每个对象还有一份阻塞列表,表中线程都是等待这个对象的线程。,线程在进入同步方法自动获取监控,退出该方法自动释放监控。 用于同步的对象通常是(但不是必 ...
/* * 把一个线程交给另一个线程称:上下文切换。 * 如果处理器自愿放开处理器控制权,称为:协同式多任务,如果不这样,会造成其他挂起。 * 更多的是采用抢占式线程管理,这种优点:一是能防止单个线程单独占用处理器,二是程序员无需负责上下文切换, * 而将责任交给操作系统 */ /* * 下面实例演示两个账号转账,但条件是必需保持平衡。有竞争条件一定要注意,下面可能实例不正确,但大部分情况下是正确的。 * 这样原因是线程切换时问题。在后面我们会改下。 * * */ package lession3; import java.text.*; import java.uti ...
2008-08-12

多线程

package lession3; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import java.awt.*; import java.awt.event.*; public class ButtonPress extends JFrame{ public static void main(String args[]){ ButtonPress bp=new ButtonPress(); bp. ...
VMware提供:桥接,Host Only和NAT三种连网方式. 我个人认为NAT方式较简单,用它来共享主机的IP,适合那种每台主机只允许一个IP的情况。具体设置如下: 1、VMware网络连接选择的是NAT方式。 2、VMware网络设置里的NAT项中查看VMnet8,NAT的网关设置为192.168.X.2。 3、在windows中,查看所有的网络连接,你应该发现除了原有的网卡之外,又多了Vmnet1和Vmnet8。vmnet1是hostonly的接口,而Vmnet8是就是我们要使用的NAT的网络接口。 4、在windows主机上用ipconfig查看VMnet8的IP地址, ...
在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是些什么关系呢,它们背后到底是基于什么原理实现的呢,了解这些是实现分布式服务框架的基础知识,而如果在性能上有高的要求的话,那深入了解这些技术背后的机制就是必须的了,在这篇blog中我们将来一探究竟,抛砖引玉,欢迎大家提供更多的实现远程通讯的技术和原理的介绍。 基本原理 要实现网络机器间的通讯,首先得来看看计算机系统网络通信的基本原理,在底层层面去看,网络通信需要做的就是将流从一台计算 ...
元数据是对数据资源的描述,英文名称是“Metadata”,通常被解释为data about data,即关于数据的数据。元数据是信息共享和交换的基础和前提,用于描述数据集的内容、质量、表示方式、空间参考、管理方式以及数据集的其他特征。 随着信息技术不断发展,以及人们对信息共享的迫切需求,元数据技术被应用于更多的领域,如:在图书馆与信息界,元数据被定为提供关于信息资源或数据的一种结构化的数据,是对信息资源的结构化的描述;在数据仓库领域中,元数据被 被定义为描述数据及其环境的数据;在软件构造领域,元数据被定义为在程序中不是被加工的对象,而是通过其值的改变来改变程序的行为的数据。
Tuscany SCA启动过程分析(组图)  Tuscany作为SCA Spec1.0实现,现在已接近Release 1.0的尾声,在近期将发布。其结构相对7月份发布的0.91版本进行了较大的调整,优化了代码的结构并且增加了部分新功能。本文将针对其最新代码,通过对其启动过程进行分析,来了解Tuscany中对资源的加载及模型组装的处理。   一、启动前准备   1、 扩展点注册器实例化   Tuscany的实现采用了扩展点机制,所有的可重用对象都会在其中注册,因此把扩展点注册器作为参数来回传递,通过它可以从中拿到所有的已注册对象。   2、 注册对象到扩展点注册器   Tuscany的 ...
SCA规范中定义了构件、服务的元数据描述规格。其实动态链接库文件也是有元数据的,每一个动态链接库都有一个导入函数表和导出函数表。导入函数表记录了导入了哪些模块,导出函数表记录了导出哪些模块。动态链接库的导出函数可以被其他动态链接库或执行文件调用。   SCA规范中定义了构件、服务的元数据描述规格。如果是一个Java的构件实现,会先从Java Class中查找元数据信息。如果没有找到,继续在*.composite,*.component文件中查找。   SCA可以将已有的程序、代码、服务添加上元数据,从而可以被其他的服务引用或调用。独立于程序代码的元数据描述信息,可以方便的描述已有的代码,而 ...
SCA编程模型是一个POJO编程模型,它基于注释、XML配置文件以及依赖注入 ,DI的美妙之处在于代码只需要付出极少的代价就可以被方便地插入到各种不同的容器中,而完全不需考虑其支持的模型,只要它是一个POJO(或POPO)。 我们可能应该回答的第一个问题也是最基本的问题。什么是面向服务的体系结构(Service-Oriented Architecture, SOA)?这个问题的答案实际上涉及与开发相关的若干不同方面。 SOA 是一种 IT 体系结构样式,支持将您的业务作为链接服务或可重复业务任务进行集成,可在需要时通过网络访问这些服务和任务。这个网络可能完全包含在您的公 ...