城管希课堂之线程

开启一个线程 相当于开启了一个 CPU的执行路径(相对独立)

CPU在执行多个线程的时候 是随机的 跟线程优先级有关

分时调度 CPU 会在多个线程中 进行随机切换


单线程程序:

程序由上至下依次执行(一个执行完 才会去执行下一个)

好处:数据绝对安全 不牵扯到 操作共享数据

弊端:效率不高 


主线程:

主线程的程序 除了主线程以外 一般都叫子线程

一个程序只有一个主线程

main函数 就是一个线程 并且是主线程


主线程(叫main的线程)是如何被执行的

JVM调用main函数 --->CPU就为叫main得函数开辟一个执行路径

--->相当于在这个执行路径中 执行main函数中的代码


Thread线程类(开辟一个主线程以外的线程 子线程)

1.创建一个Thread类的子类

2.重写run方法

    run方法就是你要执行的代码

3.调用start方法 开启线程(不能重复开启)

public class Demo02 {
	public static void main(String[] args) {
		//Exception in thread "main"
		//异常出现在 叫main的 这个线程中 
		//System.out.println(10/0);
		//System.out.println("主线程");
		//创建一个子线程 
		//开启多个线程时 多个线程会同时执行 
		//并且是相对的独立执行单元
		SubThread subThread = new SubThread();
		//开启线程
		subThread.start();
		
		//再开一个子线程
		SubThread sbsubThread = new SubThread();
		sbsubThread.start();
		//主线程 出现异常了 但是并没有影响子线程的执行
		
		//主线程
		for (int i = 0; i < 100; i++) {
			System.out.println("main--"+i);
		}
	}
}

//声明一个线程类
class SubThread extends Thread{
	
	//重写run方法
	@Override
	public void run() {
		//子线程默认的名字 Thread-0
		//X是从0开始的
		System.out.println(10/0);
		for (int i = 0; i < 100; i++) {
			System.out.println("run---"+i);
		}
		// 子线程 指定的代码
		System.out.println("我是子线程");
		
	}
}

直接调用run方法就相当于调用了一个普通的成员方法

Thread.currentThread(); 获取当前正在执行的线程

线程的创建方式

// 方式1 (用thread子类的方式)
		Thread thread = new Thread(){
			@Override
			public void run() {
				System.out.println("子线程执行的方法");
			}
		};
		thread.start();
// 方式2(接口实现类的方式)
		Runnable runnable = new Runnable() {
			
			@Override
			public void run() {
				System.out.println("子线程方法");
				
			}
		};
		Thread thread2 = new Thread(runnable);
		thread2.start();
//方式3 (方式2的两部写在一起)
		new Thread(new Runnable(){
			@Override
			public void run() {
				System.out.println("子线程方法");
			}
		}).start();

线程状态

1.新建状态 new Thread

2.运行状态 start

3.死亡状态 run方法运行完毕

4.受阻塞状态 cpu未执行该线程时

5.休眠状态 sleep方法 休眠事件过了 恢复

6.等待状态 wait notify

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值