
多线程
L X D.
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
浅谈Java的多线程(1)
首先编写个例子代码 public class MyThread extends Thread{ /* * 利用继承中的特点,将线程名称传递,进行设置 * / public MyThread(String name){ super(name); } /* ...原创 2019-08-06 13:22:53 · 193 阅读 · 0 评论 -
浅谈Java的多线线程(2)
上一篇我们总结了线程的安全,线程的同步,以及线程的状态,这一篇我们接着讨论多线程的其他问题 线程的通信 概念:多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同。 比如:线程A用来生成包子的,线程B用来吃包子的,包子可以理解为同一资源,线程A与线程B处理的动作,一个是生产,一个是消费,那么线程A与线程B之间就存在线程通信问题。这就是常见的生产者和消费者问题。 为什么要处理线程间通信: ...原创 2019-08-06 13:37:58 · 122 阅读 · 0 评论 -
简述多线程中的死锁以及thread.join
死锁 java中导致死锁的原因 多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放,而该资源又被其他线程锁定,从而导致每一个线程都得等其它线程释放其锁定的资源,造成了所有线程都无法正常结束。这是从网上其他文档看到的死锁产生的四个必要条件: 1、互斥使用,即当资源被一个线程使用(占有)时,别的线程不能使用 2、不可抢占,资源请求者不能强制从资源占有者手中夺取资源,资源只能由资源占有者主动...原创 2019-09-11 20:59:32 · 757 阅读 · 0 评论 -
浅谈线程池
1.Executor框架浅析 首先我们得明白一个 问题,为什么需要线程池?在java中,使用线程来执行异步任务时,线程的创建和销毁需要一定的开销,如果我们为每一个任务创建一个新的线程来执行的话,那么这些线程的创建与销毁将消耗大量的计算资源。同时为每一个任务创建一个新线程来执行,这样的方式可能会使处于高负荷状态的应用最终崩溃。所以线程池的出现为解决这个问题带来曙光。我们将在线程池中创建若干条线程,当...原创 2019-09-11 21:56:35 · 149 阅读 · 0 评论 -
Callable、Future和FutureTask总结
1.Callable接口 我们先回顾一下java.lang.Runnable接口,就声明了run(),其返回值为void,当然就无法获取结果了。 public interface Runnable { public abstract void run(); } 而Callable的接口定义如下 public interface Callable<V> { V ...原创 2019-09-12 10:57:37 · 180 阅读 · 0 评论