首先需要理解线程是什么东西,说线程之前又必须知道进程的意思。进程:一个正在执行的程序,而每一个正在执行的程序中
都会有一定的执行顺序,该顺序叫执行路径,或者控制单元,又叫做线程,每个执行程序中至少有一个线程。
线程和CPU之间的关系并不是同时进行,一个CPU一个时间点只能执行一个线程,那为什么任务管理器中有那么多进程呢?
因为这些线程他们是一直在“争抢”CPU的控制权,没出错,是“争抢”,哪个线程此时抢到了CPU的控制权,CPU此时就处
理这个线程,但可能下一秒控制权就被别的线程给抢走了。那么这么抢又有什么意义呢?因为这么“抢”,CPU根据一定的线程调度算法,频繁的进行线程切换,是能提高CPU的利用率的
且不会让你在进行一个程序的时候,电脑就不动了,只能执行完一个程序后才能执行另一个程序。
多线程就是这种思想。一个执行程序有多个线程,目的就是为了提高效率,并使你在进行一个功能时能同时进行另外一个功能,
例如360你可以在杀毒的时候进行磁盘清理,而不是等一个功能做完之后才进行下一个功能。线程与线程之间也会“抢”运行资源
举个建立两个新线程和默认线程同时运行的小例子:
package fang;
class Test extends Thread
{
private String name;
public Test(String name)
{
this.name=name;
}
public void run()
{
for(int i =0;i<50;i++)
System.out.println(name+" run "+i);
}
}
public class Z {
public static void main(String[] args) {
Test f = new Test("one");
Test z = new Test("two");
f.start();
z.start();
for(int x=0;x<60;x++)
System.out.println("Hello World!"+x);
}
}
由运行结果可见,三个线程一直在互相“争夺”运行资源,所以才会出现这种结果。本渣渣才开始看,可能这只是多线程的众多好处中的一种,所以加了个 .1 之后学习中如果还有重要的需要理解的好处,会继续写下来。
以上。