多线程1.1 多线程介绍学习多线程之前,我们先要了解几个关于多线程有关的概念。进程:进程指正在运行的程序。确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能。线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进... ...
分类:
编程语言 时间:
2018-03-24 19:34:12
阅读次数:
227
面试,难还是不难?取决于面试者的底蕴(气场+技能)、心态和认知及沟通技巧。面试其实可以理解为一场聊天和谈判,在这过程中有心理、思想上的碰撞和博弈。其实你只需要搞清楚一个逻辑:“面试官为什么会这样问?他希望听到什么答案?”然后针对性的准备和回答就行了,无他。 不管你是新程序员还是老手,你一定在面试中遇 ...
分类:
编程语言 时间:
2018-03-24 17:28:41
阅读次数:
162
引言合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:减少系统对于,外部服务的响应时间的等待。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,那么系统内存就会消耗完,所以就用引用到线程池的概念。线程池主要就了解一个方法就可以了了解几个参数corePoolSize(线程池的基本大小):当提交一个任务到线程池时,线程池会创建一个
分类:
编程语言 时间:
2018-03-23 17:48:14
阅读次数:
240
线程池工作队列饱和策略 Java线程池会将提交的任务先置于工作队列中,在从工作队列中获取(SynchronousQueue直接由生产者提交给工作线程)。 那么工作队列就有两种实现策略:无界队列和有界队列。 无界队列不存在饱和的问题,但是其问题是当请求持续高负载的话,任务会无脑的加入工作队列,那么很可 ...
分类:
编程语言 时间:
2018-03-23 16:15:50
阅读次数:
183
我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务? 在J
分类:
编程语言 时间:
2018-03-21 18:31:43
阅读次数:
197
线程状态 1、新建状态(New):新创建了一个线程对象。 2、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于“可运行线程池”中,变得可运行,只等待获取CPU的使用权。即在就绪状态的进程除CPU之外,其它的运行所需资源都已全部获得。 3、运行状 ...
分类:
编程语言 时间:
2018-03-21 17:25:55
阅读次数:
181
线程池是指在创建一个多线程应用程序的时候创建的一个线程集合,然后在执行新的任务的时候重用这些线程而不是新建一个线程 线程的几种状态: 新建状态、就绪状态、运行状态、阻塞状态、死亡(终止)状态 线程赋值名称: http://blog.csdn.net/kaka534/article/details/5 ...
分类:
编程语言 时间:
2018-03-21 13:45:48
阅读次数:
146
https://www.cnblogs.com/diegodu/p/7866073.html 一 sleep 是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复,调用sleep 不会释放对象锁。由于没有释放对象锁,所以不能调用里面 ...
分类:
编程语言 时间:
2018-03-20 18:07:51
阅读次数:
179
(1):线程池存在哪些状态,这些状态之间是如何进行切换的呢? (2):线程池的种类有哪些? (3):创建线程池需要哪些参数,这些参数的具体含义是什么? (4):将任务添加到线程池之后运行流程? (5):线程池是怎么做到重用线程的呢? (6):线程池的关闭 首先回答第一个问题:线程池存在哪些状态; 查 ...
分类:
编程语言 时间:
2018-03-19 00:35:50
阅读次数:
253
1. ArrayList:底层是数组结构,查询快,增删慢? ? LinkedList:底层结构是链表,查询慢,增删快2. 线程安全和非线程安全? ?非线程安全是指多线程操作同一个对象可能会出现问题。? ?线程安全是多线程操作同一个对象不会有问题。? ?线程安全必须要使用很多synchronized关键字来同步控制,所以
分类:
编程语言 时间:
2018-03-19 00:34:45
阅读次数:
278