线程状态-死锁-线程池-定时器 学习总结

1.线程状态
新建->可运行->锁阻塞->无限等待->计时等待->被终止

     无限等待:Object中的wait方法
            wait,线程一旦等待,释放锁
            当调用notify的时候,被唤醒
            如果抢到锁,继续执行,如果抢不到锁阻塞

2.死锁:
a.什么时候出现:两个线程想执行,都需要拿到对象的锁对象,但是就是拿不着,两个线程谁
也不释放对方需要的锁,所以两个线程就执行不下去了
b.知道原因即可,代码不用敲,我们应该尽量避免
3.线程池
a.概述:专门盛放线程对象的容器,任务来了从池子中拿线程,用完还回去
b.获取:
Executors类:
1.方法static ExecutorService newFixedThreadPool(int nThreads) ->获取线程池对象
nThreads:用于创建线程池对象的时候,指定线程池有多少个线程的
2. ExecutorService:真正的线程池对象
Future<?> submit(Runnable task)->提交线程执行的任务->执行线程任务,执行run方法
Future<?>–>接收设置线程任务方法的返回值的,由于重写的run方法无返回值,所以一般我们不用写Future
void shutdown() ->关闭线程池
3.Callable接口
a.概述:相当于Runnable接口
b.重写方法:V call()->带有返回值,可以将线程任务的结果返回
4.提交线程任务:Future<?> submit(Callable task)
5.Future:用于接收线程任务的返回值的
get():获取线程任务方法的返回值的
4.定时器
Timer->可以指定某个线程任务,隔一段时间,去执行一次
a.构造:
Timer timer = new Timer()
b.定时方法:
void schedule(TimerTask task, Date firstTime, long period)
task:用于设置线程任务,是一个抽象类,我们需要重写TimerTask中的run方法
firstTime:从哪个时间开始计算
period:隔多长时间执行一次线程任务,传递毫秒值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值