Process进程和Thread线程
线程创建:Thread class(重点),Runnable接口(重点),Callable接口(了解)
1.自定义线程类继承Thread类
2.重写run()方法,编写线程执行体
3.创建线程对象,调用start()方法启动线程
例1:普通方法调用,调用run():只有主线程一条执行路径。
//创建线程方式一:继承Thread 类,重写run()方法,调用start开启线程
public class TestThread extends Thread{
@Override
public void run() {
//run方法线程体
for(int i=0;i<20;i++) {
System.out.println("我在看代码--" +i);
}
}
?
public static void main(String[] args) {
//main线程,主线程
TestThread testThread=new TestThread();
testThread.run();
for(int i=0;i<20;i++){
System.out.println("我在学习多线程--"+i);
}
}
}
运行结果:
我在看代码--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
例2:多线程调用start(),多条执行路径,主线程和子线程并行交替执行。
将testThread.run();改为:testThread.start();
执行结果:
我在看代码--0
我在看代码--1
我在看代码--2
我在学习多线程--0
我在学习多线程--1
我在学习多线程--2
我在学习多线程--3
我在学习多线程--4
我在学习多线程--5
我在学习多线程--6
我在看代码--3
我在看代码--4
我在看代码--5
我在看代码--6
我在看代码--7
我在看代码--8
我在看代码--9
我在看代码--10
我在看代码--11
我在看代码--12
我在看代码--13
我在看代码--14
我在看代码--15
我在看代码--16
我在看代码--17
我在看代码--18
我在看代码--19
我在学习多线程--7
我在学习多线程--8
我在学习多线程--9
我在学习多线程--10
我在学习多线程--11
我在学习多线程--12
我在学习多线程--13
我在学习多线程--14
我在学习多线程--15
我在学习多线程--16
我在学习多线程--17
我在学习多线程--18
我在学习多线程--19
原文:https://www.cnblogs.com/judy198/p/14607914.html