由于才疏学浅,只能管理项目中的一个类似webservice 模块 API,这几天学java,就无聊吧项目的代码看了下。
实现很简单,就是一个观察者模式,但是经常down,不管怎么 先上代码吧。
1.是一个后台观察类,由于是API,要一直起着监听被观察者干完活没有
package test;
import java.util.Observable;
import java.util.Observer;
public class TestThread implements Observer{
private String name;
public TestThread(String name){
this.name = name;
}
public void init(){
System.out.println("this is init.....");
}
public static void main(String[] args) throws InterruptedException {
TestThread test = new TestThread("Task1");
test.init();
synchronized (test) {
test.wait();
}
}
@Override
public void update(Observable o, Object task) {
// TODO Auto-generated method stub
System.out.println("this is task name:"+(String)task);
}
}
当然是实现了 observer。 这个管理类 利用线程同步,的wait的方法,来获取后台的每个task
2.被观察者。
package test;
import java.util.Observable;
public class NotifyTestThread extends Observable{
private TestThread test = new TestThread("manager");
public void setComplement(TaskThread taskThread,String task){
this.addObserver(test);
this.setChanged();
this.notifyObservers(task);
}
}
被观察者继承 observable ,其中3个重要的方法,(1)加观察者(2)保存修改(3)通知观察者。这里 引进一个一个线程变量,后台的任务线程调用这个方法。每个线程结束或者怎么地,就调用这个被观察者类的方法,然后通知观察者来搞着搞那。
3.线程
package test;
import java.util.Random;
public class TaskThread extends Thread{
private NotifyTestThread notify = new NotifyTestThread();
private String task ;
public TaskThread(String task){
this.task = task;
}
public void run(){
try {
System.out.println("this is task:"+task);
this.sleep(new Random().nextInt(1000));
notify.setComplement(this,task);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
TaskThread thread1 = new TaskThread("task1");
TaskThread thread2 = new TaskThread("task2");
TaskThread thread3 = new TaskThread("task3");
thread1.start();
thread2.start();
thread3.start();
}
}
具体的线程任务类,哎 项目没有用Spring ,这就是伪代码。最后观察者一直在等后面的任务是不是完成,后面线程就做一个报告一个。。也算是学习了,
哎 这几天一直在学java,java水太深了。。。学了快一个月了!加油!!!!!另外,如果有人看到这个,谁能教我学那个持久层框架好。最近看hibernate 感觉太乱了。。。难道是老了么 学习能力下降了。。额 。。
分享到:
相关推荐
适用于java/C/C++等代码,源代码为java代码通过运行代码将代码输入程序框中D盘自动生成伪代码文件PseudoCode.txt。(注意:由于是简单代码只可适用于糊弄老师,实验报告等,不可用于学术研究)。
PCA(主成分分析,Principal Component Analysis)是一种广泛应用的数据降维技术,它通过线性变换将原始数据转换到一个新的坐标系中,新坐标系中的各坐标轴是原数据集中变量的线性组合,这些新的坐标轴被称为主成分...
- 遍历`Lk`中的所有频繁项集,找出其中仅最后一个元素不同的项集,生成新的候选项集`C`。 - 检查`C`的所有子集是否都在`Lk`中,即检查其所有`(k-1)`-子集是否都是频繁的。如果不是,则删除`C`。 - 扫描事务集`T`...
JAVA开发项目软件工程课程设计图书借阅管理系统源代码JAVA开发项目软件工程课程设计图书借阅管理系统源代码JAVA开发项目软件工程课程设计图书借阅管理系统源代码JAVA开发项目软件工程课程设计图书借阅管理系统源代码...
标题中的“【论文伪代码】Aurora 可 word 编辑”暗示了这是一个关于在Microsoft Word中编辑和处理论文中伪代码的工具或方法,名为Aurora。伪代码是一种简化的编程语言,通常用于算法和程序设计的初步描述,以便于非...
本文将深入探讨如何使用Java代码来实现一个简单的数据库连接池,并解释其核心概念和工作原理。 连接池的基本思想是维护一组预初始化的数据库连接,当应用程序需要时,可以从池中获取一个连接,使用完毕后,再归还回...
Algorithm2e is an environment for writing algorithms in L ATEX2e. An algorithm is defined as a floating object like figures. It provides macros that allow you to create different sorts of key words, ...
这些实例对于理解LaTeX算法伪代码规范来说是十分有益的,通过学习和模仿这些例子,用户可以快速掌握如何在自己的LaTeX文档中插入和自定义算法伪代码。 此外,文档中还提及了算法描述的版本信息,这有助于用户了解该...
针对物业管理系统写的缴费模块伪代码,欢迎指导
标签中的"java Bezier曲线 代码"表明这个压缩包可能包含了一个名为"Bezier"的Java源代码文件,用于实现上述功能。在实际项目中,这样的代码可能用于游戏开发、2D/3D图形渲染或者UI设计等领域,帮助创建流畅的动画...
1. 初始化:创建一个开放列表和一个关闭列表,开放列表存放待处理节点,关闭列表存放已处理节点。将起点加入开放列表,并设置其G(n)值为0,H(n)值为目标节点与起点之间的曼哈顿距离或欧几里得距离。 2. 搜索:循环...
- “doubleprobability[n]Եĺ”可能是创建一个长度为n的数组,用于存储每个特征的概率估计值。 3. **训练阶段**: ```plaintext for(inti=0;i<ѵ;i++){ if(1){ class1++; probability[p]=1дһԼ¼ĸ/class...
介绍伪代码的使用 Usage of Pseudocode
分支定界伪代码.txt
总结起来,"图形学算法(伪代码).rar"是一个关于使用C++实现图形学算法的资源包,其中的伪代码文件可以帮助初学者理解和实现这些算法,而附加的链接文件可能指向了更多相关的学习资源。学习和掌握这些内容对于提升...
\KMP 伪代码\KMP 伪代码\KMP 伪代码\KMP 伪代码\KMP 伪代码
例如,第6题的伪代码表示了一个累加的过程,输入一个整数,然后累加到16为止。第17题的伪代码则涉及到一个循环,初始值为1,每次循环将当前值与1相加,直到满足特定条件为止。 3. **流程图和伪代码的应用**: - 第...
**2.2 三角形问题**:一个常见的伪代码实例可能涉及计算三角形的面积或判断是否能构成三角形,根据三边长度进行条件判断。 **2.3 NextDate函数问题**:此问题可能涉及到编写一个函数,计算当前日期之后的下一个特定...
差分算法的伪代码,初学者很好的材料,讲解详细,适合初学者和老手留着不时翻看,浅显易懂,又可以按其思路编程
一. 生成器模板路径可以引用相关变量 如 ${basepackage}/${className}.java,根据该变量生成输出文件 二. 自动搜索某个目录所有模板文件,无需配置 三.代码生成器模板可以引用的相关变量 1. g.generateByTable(...