文章列表
 
2009年01月09日 星期五 10:21
在VMware Workstation 5.5中安装Linux虚拟机,Linux版本为RHEL 5。

首先需要安装JDK,如果你的Linux系统中没有安装JDK的话。我下载的是jdk-6u11-linux-i586-rpm.bin,安装过程非常简单,按照默认安装即可,安装到了usr/java目录下面,这时,你会看到该目录下面,如下:

[root@localhost usr]# ls -l java/
总计 4
lrwxrwxrwx 1 root root   16 01-07 13:15 default -> /usr/java/latest
drwxr-xr-x 9 root root 4096 01-07 13:15 jdk1.6.0_11
lrwxrwxrwx 1 root root   21
 
2009年01月08日 星期四 11:49
JNI全名是Java Native Interface,通过JNI技术可以实现Java和其他编程语言的互相调用。这里我们使用的是Java和C的互相调用,Java提供本地接口,C实现该本地接口。

我使用的是RHEL 5,主要是为了测试一下在Linux平台下,了解JNI技术是如何实现的。通过一个HelloWorld实例,具体过程在下面讲解。

首先,实现的是Java本地接口Hello.java,代码如下所示:

class HelloWorld {

    public native void sayHello();

    static {
   
 
2009年01月07日 星期三 11:47
在VMware Workstation下安装Red Hat Enterprise Linux 5虚拟机,通过RHEL 5访问Windows下的磁盘,可以通过共享Windows磁盘逻辑分区的方式达到类似挂载的效果。

Windows下需要作如下事情:

设置共享磁盘

Windows下需要将指定的逻辑磁盘共享,设置可能需要重新启动Windows系统。例如,我共享了我的Windows下的D盘。如图所示:

 
2009年01月03日 星期六 19:51

生产者-消费者问题

生产者-消费者问题,需要对生产者线程和消费者线程进行同步。这里以一个缓冲区作为生产者和消费者之间的共享资源。

这里产品使用整数来模拟,假设生产者生产数字,消费者消费数字,缓冲区里面存放的就是生产者生产的数字了。

缓冲区类Buffer的实现如下所示:

package org.shirdrn.thread.procon;

class Buffer { //定义缓冲区类,存放数据

    int value;
    boolean bFull=false; //定义boolean型变量,用于互斥操作缓

 
2009年01月01日 星期四 14:21

线程同步

线程同步的意义在于,进程内的多个线程共同访问共享资源,由于各个线程分配的间片很短,造成对共享资源的访问冲突,可能会因此导致共享资源不能按照预想的方式在系统中存在,造成系统错误。

线程同步的两种主要方式:同步块和同步方法。

同步块

同步块就是对访问共享变量的代码段加载,通过对临界区加锁实现互斥访问。

前面那个售票的例子,没有对多个线程进行同步,它们会共同访问tickets共享变量,可能因为分配的时间片的长短不同,给系统带来灾难性的损失。

 
2009年01月01日 星期四 12:52

在学习线程同步之前,先对与线程相关的一些概念有个深入了解。

进程

在学操作系统课程的时候都接触过进程的定义:

进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。

也就是说,“进程是程序的执行”。

通过这句话,我们可以理解到,程序是相关代码的集合具有静态的特性,它描述了程序能够实现哪些功能;如果想让程序实现其代码所定义的功能,那么就应该从静态向动态转变,也就是执行程序,程序执行

 
2008年12月31日 星期三 22:00

通常,如果我们并不需要修改线程类当中除了run方法以外其它方法的行为,最好去实现Runnable接口。

实现Runnable接口有两个好处:

一个是:如果我们定义的类(MyThread)已经继承了一个类,因为java中支持单继承,所以我们定义的类(MyThread)无法再去继承其它的类。所以可以采用实现接口的方式。

另一个是:实现Runnable接口,如果多线程同时访问同一种资源,这时会很方便。比如:

package org.shirdrn.thread.course2;

public class MultiThread {
    public static void

 
2008年12月31日 星期三 21:07

在Java语言中,创建一个线程类,可以继承Thread类。另外,因为Thread实现了Runnable接口,同时实现了Runnable接口中定义的run方法。可以了解一下:

Runnable接口的定义:

package java.lang;
public interface Runnable {

    public abstract void run();
}

Thread类实现了Runnable接口中定义的run方法:

    public void run() {
if (target != null) {
     target.run();
}
    }

 
2008年12月18日 星期四 16:15

OpenGL可以把纹理映射到指定的图形的表面上。简单一点的,就是给平面映射纹理,比如一个四边形,一个长方体的6个面,都可以指定位图作为纹理映射到各个面上。

关于将一个位图作为纹理映射到某个或者多个面上,可以学习Jeff Molofee的OpenGL系列教程。

对于指定的多个纹理,要根据自己的需要映射到不同的面上,需要对位图创建一个数组,用来存储位图的名称,然后在初始化OpenGL的时候,可以读取这些位图,然后生成多个纹理存储到一个纹理数组中,接着就可以指定绘制的某个面,对该指定的面进行纹理映射。

 
2008年12月17日 星期三 21:50

OpenGL实现旋转,调用glRotated函数或者glRotatef函数实现,该函数的声明如下:

WINGDIAPI void APIENTRY glRotated (GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
WINGDIAPI void APIENTRY glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z);

第一个参数angle是旋转的角度,另外三个参数构成三维空间的一个点,实际上调用glRotated函数或者glRotatef函数,首先需要计算一个向量:从原点(0.0f, 0.0f, 0.0f)到空间点(x, y, z)的向量,然后指定的图形以向量(x-0.0, y-0.0, z-0.0)为轴旋转a

 
2008年12月17日 星期三 20:52

OpenGL中平移使用glTranslated函数或者glTranslatef函数实现,该函数的声明如下所示:

WINGDIAPI void APIENTRY glTranslated (GLdouble x, GLdouble y, GLdouble z);
WINGDIAPI void APIENTRY glTranslatef (GLfloat x, GLfloat y, GLfloat z);

其中,坐标(x,y,z)表示分别沿着x、y、z轴移动的距离。

使用glTranslated函数或者glTranslatef函数就是在当前矩阵的基础上,乘以下面这个4*4矩阵得到了平移变换:

 
2008年12月15日 星期一 13:41

作者:张渊 夏清国( 西北工业大学计算机学院, 西安710072)
出自:《科学技术与工程》 第 6 卷第 11 期 2006 年 6 月

摘要

在软件应用中若能抽取出规则, 可以使软件实体更灵活, 规则引擎使得这成为可能。其算法Rete 也逐渐发展成为了一种最重要的主流算法。先着重叙述了规则引擎的原理及其JAVA API, 其次阐述了Rete 算法, 最后简单介绍了Jess 与开源项目产品Drools。

关键词

规则引擎 Rete算法 Java API Doorls J2EE
中图法分类号 TP311.11; 文献标识码

 
2008年12月15日 星期一 10:29

来源:来自论坛

引言

  目前,Java社区推动并发展了一种引人注目的新技术——Java规则引擎(Rule Engine)。利用它就可以在应用系统中分离商业决策者的商业决策逻辑和应用开发者的技术决策,并把这些商业决策放在中心数据库或其他统一的地方,让它们能在运行时可以动态地管理和修改,从而为企业保持灵活性和竞争力提供有效的技术支持。

规则引擎的原理

  1、基于规则的专家系统(RBES)简介

 
2008年12月13日 星期六 12:44

使用http://nehe.gamedev.net/网站上,Jeff Molofee使用的基于VC的框架来学习OpenGL。有必要理解一下这个框架的实现过程。

PS:这方面的教程很多,可以下载,因为是我个人学习,我会对照MSDN,对程序中涉及到的API函数都进行了了解,做了注释,同时也算是对VC学习的一个积累。

Jeff Molofee第一课的源代码,给出了基于Win32 Application的OpenGL框架,有了这个程序框架,就可以在此之上,非常方便地学习OpenGL。

int WINAPI WinMain( HINSTANCE h

 
2008年12月12日 星期五 12:17

VC 6中新建一个Win32 Application,在Source Files中新建一个C++源文件WinMain.cpp,代码如下所示:

#include "stdafx.h"

HWND hWnd=NULL; // 保存 Windows 分配给程序的窗口句柄,它是全局

LRESULT APIENTRY MyWndProc(HWND,UINT,WPARAM,LPARAM);
void MyMsgLoop();


int APIENTRY WinMain(HINSTANCE hInstance,
            

 
   
 
 
文章存档
 
     
 
最新文章评论
  

这个不错,很详细,对于我们初学spring框架的人不错的帮助,感谢楼主分享
 

最近用,学习了~
 

[表情]
 

[表情]
 

对于Ubuntu用户,有一个简单的办法: 将该用户添加到admin用户组,即 usermod -G adm
   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu