在学操作系统的时候学过线程这个概念,如今再次进行复习。
线程是一个程序里不同的执行路径,通过代码来说,一个main方法就是一个主线程。在机器里面运行的也只有线程,而进程是一个静态的概念,进程可以理解为机器上的一个exe文件,它是静态的。
看一下线程的和调用方法的过程区别。
线程执行:
public class TestThread {
public static void main(string[] args){
Runner1 r = new Runner1();
Thread t = new Thread(r);//要想执行线程,先new 出Thread
t.start();//执行线程
for(int i = 0; i<100; i++){
System.out.println("i")
}
}
}
class Runner1 implements Runnable{ //实现线程的Runnable接口
public void run(){
for(int i = 0; i<100; i++){
System.out.println("i")
}
}
}
代码执行的过程图:
两个线程是交替执行的,main执行一会,然后分支线程执行一会。一个cpu同时只能执行一个线程,但是可以为每个线程分配时间片,你执行一会,我执行一会,这样看起来好像所有线程在同时执行。
方法的调用代码:
public class TestThread {
public static void main(string[] args){
Runner1 r = new Runner1();
r.run()
for(int i = 0; i<100; i++){
System.out.println("i")
}
}
}
class Runner1 implements Runnable{ //实现线程的Runnable接口
public void run(){
for(int i = 0; i<100; i++){
System.out.println("i")
}
}
}
方法调用执行过程:
主线程和方法不是同时执行,是需要调用run方法执行完之后再回过来执行主线程。