随笔分类 - 进程线程,线程池
摘要:使用线程池的风险 死锁:虽然死锁可能发生在任何多线程程序中,但线程池引入了另一种死锁情况,其中所有正在执行的线程都在等待等待队列阻塞线程的结果,因为执行的线程不可用。 简言之:业务线程在占用了线程池内所有的资源后又向线程池提交了新的任务,并且要等这些任务完成后才释放资源,而这些新提交的任务根本就没机
阅读全文
摘要:1 线程与线程间通信 1.1 基本概念以及线程与进程之间的区别联系 关于进程和线程,首先从定义上理解就有所不同: 进程是具有一定独立功能的程序、它是系统进行资源分配和调度的一个独立单位,重点在系统调度和单独的单位,也就是说进程是可以独 立运行的一段程序。 线程是进程的一个实体,是CPU调度和分派的基
阅读全文
摘要:思路:通过ThreadPoolExecutor创建线程池,它有一些参数,任务提交给线程池之后的处理流程。不过java doc中,并不提倡我们直接使用ThreadPoolExecutor,而是使用Executors类中提供的几个静态方法来创建线程池,各方法的区别,优缺点,问题。 一.Java中的Thr
阅读全文
摘要:https://www.cnblogs.com/MOBIN/p/6185387.html
阅读全文
摘要:Ctrip AIO底层使用epoll https://blog.csdn.net/z69183787/article/details/52943637 首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。 不管是文件,还是套接字,还是管道,我们都可以把他
阅读全文
摘要:submit和execute都是 ExecutorService 的方法,都是添加线程到线程池中。 区别 三个区别: 1、接收的参数不一样 2、submit有返回值,而execute没有 Method submit extends base method Executor.execute by cr
阅读全文
摘要:一. ListenableFuture是用来增强Future的功能的。 我们知道Future表示一个异步计算任务,当任务完成时可以得到计算结果。如果我们希望一旦计算完成就拿到结果展示给用户或者做另外的计算,就必须使用另一个线程不断的查询计算状态。这样做,不断代码复杂,而且效率低下。 Listenab
阅读全文
摘要:https://blog.csdn.net/codershamo/article/details/51901057 返回结果的任务Callable与Future Executor框架使用Runnable作为其基本的任务表示形式。Runnable是一种有很大局限的抽象,它不能返回一个值或抛出一个受检查
阅读全文
摘要:java.util.concurrent.Executor, java.util.concurrent.ExecutorService, java.util.concurrent. Executors 这三者均是 Java Executor 框架的一部分,用来提供线程池的功能。因为创建和管理线程非常
阅读全文