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
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!