这几天,看了一些java线程的资料,总结了一些..
线程是什么呢?相信很多技术性的文章都会有很科学的定义.以下是我的理解:
我们通常写的程序,是从main方法开始执行,就是一个线程,是一个隐式的线程,而我们创建的
线程就是一个从run()方法开始执行的,以run一旦结束,那这个线程也结束..
java中的线程继承于thread,threadrunable,一个线程可以有沉睡,中止
现在看一个简单的线程例子
1
public 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的异步请求的方式就有点类似,例子中创建了五个线徎,但由于他们之间不会顺序执行,所以打印出来的结果每次都会有点不一样.