java线程
时间:2020-06-03 22:14:04
收藏:0
阅读:56
程序:可以理解为一组静态的代码
进程:正在进行的程序 静态的代码 运行起来
线程:正在执行程序中的小单元
1.主线程 系统线程
2.用户线程 main
3.守护线程(精灵)GC
线程--操作系统级别 CPU
如何在java中创建线程 让线程执行 多线程
掌握每一个线程的几种不同状态 状态之间如何切换
new start() CPU分配(run()) wait() exception over
创建线程---就绪状态---执行状态---等待/挂起---异常/消亡---
| |
|__________________|
notify/notifyAll
实现线程的过程 (方式1)
1.自己描述一个类
2.继承父类 Thread
3.重写run方法
4.new一个线程对象 调用start()方法 让线程进入就绪状态
实现一个多人跑步的小例子
package test0603; public class RunningMan extends Thread{ private String name; public RunningMan(){ } public RunningMan(String name){ this.name=name; } //重写run方法 public void run(){ for(int i=1;i<=100;i++){ System.out.println(this.name+"跑到第"+i+"米"); } } }
package test0603; public class TestMain{ public static void main(String[] args){ RunningMan r1=new RunningMan("张三"); RunningMan r2=new RunningMan("李四"); RunningMan r3=new RunningMan("王五"); //调用start方法 让线程进入就绪状态 CPU分配执行(无序)每次执行结果不一样 /* r1.start(); r2.start(); r3.start(); */ //run()方法是顺序执行 r1.run(); r2.run(); r3.run(); } }
实现线程的过程(方式2)
1.自己描述一个类
2.实现一个父接口Runnable
3.重写run方法
4.new一个线程对象
package test0603; public class RunningMan implements Runnable{ private String name; public RunningMan(){ } public RunningMan(String name){ this.name=name; } //重写run方法 public void run(){ for(int i=1;i<=100;i++){ System.out.println(this.name+"跑到第"+i+"米"); } } }
package test0603; public class TestMain{ public static void main(String[] args){ RunningMan r1=new RunningMan("张三"); RunningMan r2=new RunningMan("李四"); RunningMan r3=new RunningMan("王五"); Thread t1=new Thread(r1); Thread t2=new Thread(r2); Thread t3=new Thread(r3); //调用start方法 让线程进入就绪状态 CPU分配执行(无序)每次执行结果不一样 t1.start(); t2.start(); t3.start(); } }
原文:https://www.cnblogs.com/canglongdao/p/13040286.html
评论(0)