课程图文笔记 供复习
1.多线程原理
2.Thread类
3.Runnable创建线程
package thread;
public class MyRunnable implements Runnable{
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println(Thread.currentThread().getName()+" "+i);
}
}
}
package thread;
public class TstMyRunnable {
public static void main(String[] args) {
MyRunnable mr = new MyRunnable();
Thread t = new Thread(mr, "xiaoqiang");
t.start();
for (int i = 0; i < 20; i++) {
System.out.println("wang" + i);
}
}
}
wang0
wang1
wang2
wang3
wang4
wang5
wang6
wang7
xiaoqiang 0
wang8
wang9
wang10
xiaoqiang 1
wang11
xiaoqiang 2
wang12
wang13
wang14
wang15
xiaoqiang 3
wang16
xiaoqiang 4
wang17
xiaoqiang 5
wang18
wang19
xiaoqiang 6
xiaoqiang 7
xiaoqiang 8
xiaoqiang 9
xiaoqiang 10
xiaoqiang 11
xiaoqiang 12
xiaoqiang 13
xiaoqiang 14
xiaoqiang 15
xiaoqiang 16
xiaoqiang 17
xiaoqiang 18
xiaoqiang 19
4.Thread和Runnable的区别
5. 匿名内部类实现线程创建
package thread;
public class NoNameInnerClassThread {
public static void main(String[] args) {
Runnable r = new Runnable(){
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println("xiaozhu:" + i);
}
}
}; //new MyRunnable
new Thread(r).start();
for (int i = 0; i < 20; i++) {
System.out.println("xiaogouzhu:"+ i);
}
}
}
xiaogouzhu:0
xiaogouzhu:1
xiaogouzhu:2
xiaogouzhu:3
xiaogouzhu:4
xiaogouzhu:5
xiaogouzhu:6
xiaogouzhu:7
xiaogouzhu:8
xiaogouzhu:9
xiaogouzhu:10
xiaogouzhu:11
xiaogouzhu:12
xiaozhu:0
xiaogouzhu:13
xiaozhu:1
xiaozhu:2
xiaozhu:3
xiaozhu:4
xiaozhu:5
xiaozhu:6
xiaozhu:7
xiaozhu:8
xiaozhu:9
xiaozhu:10
xiaozhu:11
xiaozhu:12
xiaozhu:13
xiaozhu:14
xiaozhu:15
xiaozhu:16
xiaozhu:17
xiaozhu:18
xiaozhu:19
xiaogouzhu:14
xiaogouzhu:15
xiaogouzhu:16
xiaogouzhu:17
xiaogouzhu:18
xiaogouzhu:19