![](https://img-blog.csdnimg.cn/57729a1d029a46a3b89b7f29ca5fb647.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
多线程
文章平均质量分 76
Java多线程
honvin_
这个作者很懒,什么都没留下…
展开
-
Java多线程 - 锁(死锁、Lock)
死锁多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致两个或者多个线程都在等待对方释放资源,都停止执行的情形.某一个同步块同时拥有“两个以上对象的锁”时,就可能会发生“死锁”的问题。死锁:多个线程互相持有对方需要的资源,然后形成僵持举个例子:两个女生化妆,需要口红和镜子(都只有一份),一个想先拿口红再拿镜子;另一个想先拿镜子,后拿口红// 死锁:多个线程互相持有对方需要的资源,然后形成僵持public class DeadLockDemo { public sta原创 2021-09-26 09:40:57 · 4061 阅读 · 0 评论 -
Java多线程 - 线程池
经常创建和销毁、使用量特别大的资源,比如并发情况下的线程,对性能影响很大。提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回池中,可以避免频繁创建销毁、实现重复利用。类似生活中的公共交通工具。好处提高响应速度(减少了创建新线程的时间)降低资源消耗(重复利用线程池中线程,不需要每次都创建)便于线程管理core Poolsize:核心池的大小maximum Poo|size:最大线程数keepAliveTime:线程没有任务时最多保持多长时间后会终止JDK5.0起提供原创 2021-09-26 09:50:35 · 3711 阅读 · 0 评论 -
Java多线程 - 线程同步
线程同步,主要是应用在多个线程操作同一个资源。并发:同一个对象被多个线程同时操作。例子:上万人同时抢100张票一个账号在两个银行同时取钱现实生活中,并发情况很常见。比如,食堂排队打饭,每个人都想吃饭,最天然的解决办法就是排队,一个个来。处理多线程问题时,多个线程访问同一个对象,并且某些线程还想修改这个对象这时候我们就需要线程同步。线程同步其实就是一种等待机制,多个需要同时访问,此对象的线程进入这个对象的等待池形成队列,等待前面线程使用完毕,下一个线程再使用。排队的形成条件:队列 + 锁由原创 2021-09-22 10:31:00 · 3946 阅读 · 0 评论 -
Java多线程 - 线程状态
线程状态五个状态:新生、就绪、运行、死亡、阻塞停止线程不推荐使用JDK提供的stop()、destroy()方法【已弃用】推荐线程自己停止建议用一个标志位进行终止变量,到flag=false,则终止线程运行public class StopDemo implements Runnable { // 设置一个标志位 boolean flag = true; @Override public void run() { // 线程体使用该标志原创 2021-09-21 23:18:43 · 6245 阅读 · 1 评论 -
Java多线程 - 线程通信(线程协作)
生产者消费者模式举个例子,我作为消费者去肯德基买鸡块吃,正常情况下,如果还有鸡块的话就直接卖给我了,如果没有的话,前台就会通知后面的大厨进行制作,那么大厨就相当于是生产者。大厨做好之后会给到前台,然后前台通知我(消费者)来取餐。在线程中,生产者是一条线程,消费者是一条线程,中间有个产品,如果有产品的话就进行通知,没有的话就进行等待。这样一来,两条线程之间就有了依赖及协作。应用场景:假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费如果仓库中没有产品,则生产者将原创 2021-09-26 09:48:30 · 4282 阅读 · 0 评论