黑马程序员 – 学习Java5中的多线程(2) – 2012.12.30
来源:互联网 发布:弱视治疗软件 编辑:程序博客网 时间:2024/06/09 16:22
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
今天学习了张老师Java5线程并发库的第一个和第二个视频,回顾了传统的线程创建方式和定时器的应用。现在总结一下。
传统创建线程的第一种方式:继承Tread类。
1. 定义类继承Tread。
2. 重写run方法。
3. 调用线程的start方法。
传统创建线程的第二种方式:实现Runnable接口。
1. 定义类实现Runnable接口。
2. 覆盖Runnable接口中的run方法。
3. 通过Tread类建立线程对象。
4. 将Runnable的子类对象作为实际参数传递给Tread类的构造函数。
5. 调用Tread类的start方法。
两个问题:
1. 多线程机制会提高程序的运行效率吗?
只有一个CPU的话,会导致电脑性能降低的。
2. 为什么会有多线程下载呢?号称速度会加快?
并不是自己的电脑变快了,而是多线程下载方式可以得到对方服务器更多的资源(带宽)。
定时器的应用,要记住的是Timer类。还有开源工具quartz,可以解决商业的定时处理任务问题。老师讲解定时器的时候,有个连环炸弹的例子,另外一种实现方式老师并没有写代码,我尝试写了一下,运行是没问题的。
package cn.itcast;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
//用互相调用的方式实现2秒、4秒交替爆炸
public class TraditionalTimerTest1 {
//自定义炸弹任务,显示爆炸,并且里面有一个4秒后爆炸的炸弹
class MyTimerTask1extends TimerTask{
@Override
public void run() {
System.out.println("bombing---------------要炸了!");
new Timer().schedule(new MyTimerTask2(), 4000);
}
}
//自定义炸弹任务,显示爆炸,并且里面有一个2秒后爆炸的炸弹
class MyTimerTask2extends TimerTask{
@Override
public void run() {
System.out.println("bombing---------------要炸了!");
new Timer().schedule(new MyTimerTask1(), 2000);
}
}
public staticvoid main(String[] args) {
//2秒后炸,接着4秒后炸,如此循环往复。。。
new Timer().schedule(new TraditionalTimerTest1().new MyTimerTask1(), 2000);
while(true){
System.out.println(new Date().getSeconds());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
- 黑马程序员 – 学习Java5中的多线程(2) – 2012.12.30
- 黑马程序员 – 学习Java5中的多线程(1) – 2012.10.29
- 黑马程序员 – 学习Java5线程并发库(4) -- 2013.1.2
- 黑马程序员 – 学习Java5线程并发库(3) -- 2013.1.1
- 黑马程序员 – 学习Java5线程并发库(5) -- 2013.1.3
- 黑马程序员 – 学习Java5线程并发库(6) -- 2013.1.4
- 黑马程序员 – 学习Java5线程并发库(7) -- 2013.1.5
- 黑马程序员 – 学习Java5线程并发库(7) -- 2013.1.5
- 黑马程序员 – 学习Java5线程并发库(7) -- 2013.1.5
- JAVA5 学习(2)
- 黑马程序员 多线程学习
- 黑马程序员---多线程学习
- 黑马程序员_java中的多线程2
- 黑马程序员—多线程的学习(2)
- 黑马程序员--学习日记7(多线程 2 ) .
- 黑马程序员---多线程的学习2
- 黑马程序员学习日记----多线程(一)
- 黑马程序员学习日记----多线程(二)
- 黑马程序员 – 学习面向对象设计原则 – 2012.12.29
- Unity3d之MonoBehavior的各个函数的执行顺序,回调,顺序,次数等
- 黑马程序员 – 学习Java5中的多线程(1) – 2012.10.29
- 盘点:崛起中的九大HTML5开发工具
- 黑盒测试工具汇总
- 黑马程序员 – 学习Java5中的多线程(2) – 2012.12.30
- Codeforces Round #161 (Div. 2)总结
- sed命令详解(上)
- 黑马程序员 – 学习Java5线程并发库(3) -- 2013.1.1
- sed命令详解(下)
- C++中using的作用
- hadoop的hbase安装入门
- SQLiteHelper类,操作SQLite数据库
- 使用hibernate更新和删除时不能使用关系联接操作