这几天,看了一些java线程的资料,总结了一些..
线程是什么呢?相信很多技术性的文章都会有很科学的定义.以下是我的理解:
我们通常写的程序,是从main方法开始执行,就是一个线程,是一个隐式的线程,而我们创建的
线程就是一个从run()方法开始执行的,以run一旦结束,那这个线程也结束..
java中的线程继承于thread,threadrunable,一个线程可以有沉睡,中止
现在看一个简单的线程例子
1public class mythread extends Thread {
2 private int count = 5;
3 public mythread() {
4 start();
5 }
6 public void run() {
7 while(true) {
8 System.out.println(this);
9 if(--count == 0) return;
10 System.out.println(count);
11
12 }
13 }
14
15 public static void main(String[] args){
16 for(int i = 0; i < 5; i++) {
17 new mythread();
18
19 }
20
21 }
22} 打印出来的结果视乎各人的机器,会不相同,
但如果你的机器能打印出5,4,3,2,1,5,4,3,2,1.....的顺序,那恭喜你了,可以去买彩票了.
因为在类mythread 的构造器中只有一个方法start(),这是一个静态的方法,start()这个方法,是用来执行run方法的内容的,如果没有start,线程是不会创建的.什么时候线程结束,是无法预计的.这有点和AJAX的异步请求的方式就有点类似,例子中创建了五个线徎,但由于他们之间不会顺序执行,所以打印出来的结果每次都会有点不一样.