创建线程方式一

本文介绍了Java中创建线程的一种方式:通过继承Thread类并重写run方法来实现。对比了start方法与run方法的区别,并展示了如何在主线程与子线程中打印当前线程名称,以此来说明多线程的随机性和并发执行特性。

 

public class Demo_01 {

	public static void main(String[] args) {
		/* 创建线程的方式一
		 *  1.继承Thread类
			2.重写run方法 将线程要执行的代码 放在run方法中
			3.创建对象 调用start方法 启动线程 使该线程开始执行;Java 虚拟机调用该线程的 run 方法。 
		 * */
		SonThread son = new SonThread();
		son.start(); //jvm会去调用线程的run()方法 开启线程 
		//son.run();//错误 这种调用 叫方法的调用 不叫开启线程
		for(int x=0;x<=2000;x++){
			System.out.println(Thread.currentThread().getName()+":::::main:::::"+x);
		}
	}

}
/*
 * 发现运行结果每次都不同
 *  因为多个线程都在抢夺cpu的执行权 cpu执行到谁 就运行谁
 *  明确一点 在某一个时刻 只能有一个程序在运行(多核除外)
 *  cpu在做着快速切换 已达到看上去同时运行的效果
 *  我们可以形象的把线程的运行 视为 在互相抢夺cpu的执行权
 *  这也就是多线程的一个特性 随机性 谁抢到就算谁的 至于执行多长时间 由cpu说了算
 *  
 *  run() 方法 和 start()方法的区别
 *  Thread类用于描述线程
 *  该类定义了一个功能 用于存储线程要运行的代码 该存储功能就是run()方法
 *  主线程 要运行的代码 jvm默认规定 是main方法中的内容
 *  我们自己创建的线程  需要运行的内容一定要放在run()方法里
 *  start()方法 启动线程的
 * */
class SonThread extends Thread{

	@Override
	public void run() {
		for(int i=0;i<=80;i++){
			System.out.println(Thread.currentThread().getName()+"....run..."+i);
		}
	}
	
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值