大家好,又见面了,我是全栈君。
流程:一个正常的程序运行。 每个程序都有一个运行顺序。这个序列是一个运行路径,或致电控制单元。
程: 就是进程中的一个独立的控制单元,线程在控制着进程的运行。
一个进程中至少有一个线程。或者说至少一个控制单元。 样例:jvm启动不止一个线程,还有负责垃圾回收的线程。
通过运行这样的方法的运行结果的每次都不一样,由于多个线程获取CPU的运行权,CPU运行到谁。谁就运行。 也就是说,在某一个时刻,仅仅能有一个程序运行(多核CPU除外),CPU做着高速的切换。以达到看上去是同一时候运行的效果。
我们能够形象的把多线程的运行是互相争夺CPU的运行权。
多线程的一个特性:随机性
package com.vobile;
class Test extends Thread {
public void run(){
for (int j = 0; j < 20; j++){
System.out.println("j = " + j + "-------------");
}
}
}
class ThreadDemo1{
public static void main(String[] args){
Test test = new Test(); //创建一个线程
test.start();
for(int i = 0; i<20; i++){
System.out.println("i= " + i + "+++++++++++++++++");
}
}
}
//运行结果
i= 0+++++++++++++++++
i= 1+++++++++++++++++
j = 0-------------
i= 2+++++++++++++++++
j = 1-------------
i= 3+++++++++++++++++
j = 2-------------
i= 4+++++++++++++++++
j = 3-------------
i= 5+++++++++++++++++
j = 4-------------
……
待续…
package com.vobile;
/** * 三个线程交替运行 * */
class Test extends Thread {
private String name;
public Test(String name){
this.name = name;
}
public void run(){
for (int j = 0; j < 20; j++){
System.out.println(this.name + " test run... " + j);
}
}
}
class ThreadDemo1{
public static void main(String[] args){
Test test1 = new Test("one"); //创建一个线程
Test test2 = new Test("two");
test1.start();
test2.start();
for(int i = 0; i<20; i++){
System.out.println("main ... " + i);
}
}
}
版权声明:本文博主原创文章,博客,未经同意不得转载。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/117056.html原文链接:https://javaforall.cn