昨天被一个朋友问到线程和进程的问题,今天自己在电脑里敲了一下单线程和多线程的案例。
单线程:
package com.wqq.test;
public class ThreadDemo01 {
public static void main(String[] args){
new TestThrea().run();
for(int i=0;i<10;i++){
System.out.println("main在运行");
}
}
}
class TestThrea{
public void run(){
for(int i= 0;i<10;i++){
System.out.println("testThread在运行!");
}
}
}
多线程:
package com.wqq.test;
public class ThreadMoerDemo {
public static void main(String[] args){
new TestThreas().start();
for(int i=0;i<50;i++){
System.out.println("main运行");
}
}
}
class TestThreas extends Thread{
public void run(){
for(int i=0;i<50;i++){
System.out.println("threan在运行");
}
}
}
之前i用的是10,运行的时候没有体现多线程结果。刚开始感觉很不合理,明明没错怎么会结果出错,后来发现是cpu进程处理时间的问题,所以我把数字换了50,结果就对了。
从这个问题中,得到的结论是,有时候结果出错并不是程序bug,其他的因素还是要考虑的。对于cpu处理机制,我完全没概念,该缺啥补啥了。