多线程估计大家都在用,大家每天面对的操作系统都是多线程的应用,呵呵,以前的dos系统就是经典的单线程体现。编程也用了不少多线程,是时候写个文章总结一下,以便对知识的总结和交流。
单线程的程序结构:
执行是顺序的一个执行结果:
MethodDemo0
MethodDemo1
MethodDemo2
MethodDemo3
MethodDemo4
Main0
Main1
Main2
Main3
Main4
执行结果是一个并行的执行结果:
Main0
MethodDemo0
MethodDemo1
MethodDemo2
MethodDemo3
MethodDemo4
Main1
Main2
Main3
Main4
可见程序段一是单线程执行,对于代码是顺序执行,
对于程序段二是多线程执行,到了 s.start();开启了一个新的线程来执行任务。
单线程的程序结构:
public class TestThread {
public static void main(String[] args) {
MethodDemo demo=new MethodDemo();
demo.run();
for (int i = 0; i < 5; i++) {
System.out.println("Main" + i);
}
}
}
class MethodDemo implements Runnable {
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println("MethodDemo" + i);
}
}
}
执行是顺序的一个执行结果:
MethodDemo0
MethodDemo1
MethodDemo2
MethodDemo3
MethodDemo4
Main0
Main1
Main2
Main3
Main4
public class TestThread {
public static void main(String[] args) {
MethodDemo demo = new MethodDemo();
Thread s = new Thread(demo);
s.start();
for (int i = 0; i < 5; i++) {
System.out.println("Main" + i);
}
}
}
class MethodDemo implements Runnable {
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println("MethodDemo" + i);
}
}
}
执行结果是一个并行的执行结果:
Main0
MethodDemo0
MethodDemo1
MethodDemo2
MethodDemo3
MethodDemo4
Main1
Main2
Main3
Main4
可见程序段一是单线程执行,对于代码是顺序执行,
对于程序段二是多线程执行,到了 s.start();开启了一个新的线程来执行任务。