本人所有文章,只属学习整理及个人理解!有误还望谅解并指出,谢谢!持续更新中…
单线程(主线程)概念:
单线程程序:java程序中只有一个线程,执行从main方法开始,从上到下依次执行
JVM 执行 main 方法,main方法会进入到栈内存,JVM会找操作系统开辟一条 main 方法通向cpu的执行路径,cpu就可以通过这个路径来执行 main 方法,而这个路径的名字就叫做:main(主)线程
来,话不多说,下面先看下代码运行结果:
public class SingleThreadTest {
public static void main(String[] args) {
Person p1 = new Person("张三");
p1.run();
Person p2 = new Person("李四");
p2.run();
/* 执行的结果:
张三--->0
张三--->1
张三--->2
张三--->3
张三--->4
张三--->5
张三--->6
张三--->7
张三--->8
张三--->9
张三--->10
张三--->11
张三--->12
张三--->13
张三--->14
张三--->15
张三--->16
张三--->17
张三--->18
张三--->19
李四--->0
李四--->1
李四--->2
李四--->3
李四--->4
李四--->5
李四--->6
李四--->7
李四--->8
李四--->9
李四--->10
李四--->11
李四--->12
李四--->13
李四--->14
李四--->15
李四--->16
李四--->17
李四--->18
李四--->19
*/
}
}
Person类:
public class Person {
private String name;
public Person() {
}
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void run () {
for (int i = 0; i < 20; i++) {
System.out.println(name+"--->"+i);
}
}
}
单线程的弊端:
在单线程程序中,一旦程序在执行过程中出现异常情况,则整个程序将【终止运行】,并且抛出异常。
继续上面 main 方法 ,再来看下代码和运行结果:
public class SingleThreadTest {
public static void main(String[] args) {
Person p1 = new Person("张三");
p1.run();
// 注意,下面这行代码,这边我给制造异常,再看下面的运行结果,李四的结果???
System.out.println(0/0);
Person p2 = new Person("李四");
p2.run();
/* 执行的结果:
张三--->0
张三--->1
张三--->2
张三--->3
张三--->4
张三--->5
张三--->6
张三--->7
张三--->8
张三--->9
张三--->10
张三--->11
张三--->12
张三--->13
张三--->14
张三--->15
张三--->16
张三--->17
张三--->18
张三--->19
Exception in thread "main" java.lang.ArithmeticException: / by zero
at com.zeromo.singlethread.SingleThreadTest.main(SingleThreadTest.java:17)
*/
}
}