java多线程

java多线程

使用资源时多个程序一起进行

进程 是程序的一次动态执行过程
多线程 实现并发机制的一种手段
线程依赖进程才能存在

多线程的实现

1.继承Thread类
java.lang.Thread 线程的主类 覆写中的run方法执行

Java虚拟机调用run方法 start方法 然后线程调用run
native java调用底层本地接口的调用 操作系统的层面
start方法 调给本机

Runnable接口的 使用
通过Thread
new Thread(mt1).start();

区别

使用runnable 接口 避免单继承的局限
Thread 实现 runnable接口
使用runnable接口可以更加方便的显示数据共享的概念

多线程两种实现方式的区别
一个是实现runnable接口 一个是继承Thread类
2. thread类实现Runnable接口

1.所有的线程对象通过关键字new创建
2.线程进行启动一定会调用Thread类的start方法 但是代码可能会分先后顺序
对于jvm而言虽然代码先后调用start方法 都表示所有线程进入就绪状态
3.进入就绪状态后 等待cpu进行资源的抢占 抢占到资源后会进入运行状态 开始执行run方法中定义的代码
4.方法执行一定时间会让出cpu资源进入阻塞状态
5.全部执行完毕进入终止状态

创建 就绪 运行 阻塞 终止

线程操作的主要的方法
线程的命名和取得
构造方法
设置名字
取得名字// set get
currentThread取得当前线程对象方法

System.out.println(Thread.currentThread().getName());

		new Thread(mt,"线程1").start();
		new Thread(mt,"线程2").start();
		new Thread(mt).start();
		new Thread(mt).start();
线程1
线程2
Thread-0
Thread-1

主方法也是一个线程获取的名字为main
一个jvm进程至少俩个进程 主函数 gc

判断进程是否启动 isAlive
是否启动 取决于程序的调度

线程的强制执行 join 等待该线程终止
线程执行完之后才执行别的

线程的休眠 sleep让当前正在执行的操作暂停 以毫秒为单位的休眠

线程的中断 interrupted 中断正在运行的线程

线程的优先级
设置线程的优先级 setpriority
取得线程的优先级 get
t3.setPriority(Thread.MAX_PRIORITY);10
t1.setPriority(Thread.NORM_PRIORITY);5
t2.setPriority(Thread.MIN_PRIORITY);1
可能并不会按照调度走 看cpu的调度

线程的礼让 yield 暂停当前执行的线程对象 并执行其他线程

yield 线程礼让 暂停正在执行的线程对象并执行其他线程
sleep 线程的休眠 让当前正在执行的操作暂停 以毫秒为单位的休眠
interrupt 线程的中断 中断正在运行的线程
setpriority 线程的优先级 MAX NORM MIN
isAlive 线程的启动 判断线程是否启动
currentThread取得当前线程对象方法 setName getName
join 现场的强制执行等待该线程终止

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值