1分钟带你理解java多线程机制

多线程
程序program
进程process
线程thread

创建线程两种方法
1.继承Thread类
class MyThread extends Thread{

	重写线程的运行方法
	run()
}

2.实现Runnable接口

class MyRunnable implements Runnable{

	重写线程的运行方法
	run()
}

Thread的构造器
Thread()
Thread(“线程名”)
Thread(Runnable r)
Thread(MyRunnable,“线程名”)
线程的启动
不是去调用run() 而是调用start(),
setName/getName : 设置或者获取线程名
static Thread currentThread():返回当前线程对象
join()/join(毫秒):
join():在start()后 去调用join() 阻塞
t1.start()
t1.join() t1.join(100)
t2.start()
t3.start()
t1线程执行完毕 t2、t3交替执行; t1线程执行100ms后 t1、t2、t3交替执行
yield():让步
重新排号,自己,跟自己优先级相同的,高于自己的
若没有同优先级的线程,忽略
sleep(毫秒): 令当前的线程在指定的时间内放弃对cpu控制
让其他线程有机会执行,时间到了 这个线程重新排队
调度
调度策略
时间片:时间轮询
抢占:高优先级的线程抢占CPU
java:同优先级时间片 高优先级 抢占
setPriority(1-10) 优先级 从小到大
getProority()
默认5
MAX_PRIORITY 10
MIN_PRIORITY 1
NORM_PRIORITY 10
线程生命周期中的五种状态:
新建
就绪
运行
阻塞
死亡

生命周期
阻塞
sleep()
join()

新建 start()> 就绪 cpu调度> 运行(run) > 死亡
<yeild

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值