Java_多线程

------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------


一、java实现线程开发的两种方式


1、继承Thread类

我们就可以认为当前的实现类就是一个线程类,运行时每个Thread都拥有自己独立的run方法。


2、实现Runnable接口(一般都当作共享资源)

而实现了Runnable接口的类并不是线程类,它只是一个可运行的对象,最终是要通过线程去执行的,运行时被多个线程共享一个run方法。

1)这时可能会出现产生资源共享问题的原因,这是由于CPU给所有线程分配的时间片长短是不一样的,导致线程在没有处理完自身任务时,就让出的cpu资源,这时CPU就执行另外一个线程去了。

2)解决办法
让资源的共享得到同步,在java中可以使用同步锁进行同步
但是会降低执行效率(synchronized)


二、线程可能会出现两种锁死的现象

1、活锁(线程都进入等待队列,程序没有线程执行,但可以在外部唤醒线程)
2、死锁(两个线程都有自己的钥匙,然后想去拿对方的钥匙)
极小可能会出现“饿死”(某个线程永远得不到CPU分配的时间片)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值