- 博客(7)
- 收藏
- 关注
原创 Executors工厂方法说明
newFixedTreadPool:返回一个固定线程数量的线程池,该方法创建的线程池线程数量始终不变,此线程池使用的任务队列为LinkedBlockingQueue。(任务队列描述说明链接:ThreadPoolExecutor主要参数说明_誰嘚的博客-CSDN博客)newSingleThreadPool:返回一个只有一个线程的线程池,此线程池使用的任务队列为LinkedBlockingQueue。newCachedThreadPool:返回一个可根据实际情况调整线程数量的线程池,线程池线程数量不确定
2021-10-14 20:50:45 121
原创 ThreadPoolExecutor主要参数说明
corePoolSize:指定了线程池中的线程数量;maximumPoolSize:制定线程池中最大线程数量;keepAliveTime:当线程数量超过corePoolSize时,多余的空闲线程存活时间。即超过corePoolSize的空闲线程多长时间会被销毁。unit:keepAliveTime的单位。workQueue:任务队列,被提交但未被执行的任务。threadFactory:线程工厂,用于创建线程,一般使用默认,也可自定义,比如指定线程名称等。handle:拒绝策略,当.
2021-10-14 20:16:50 219
原创 重入锁ReentrantLock的搭档:Condition条件
接口基本方法:/**会使当前线程等待,同时释放当前锁,当其他线程中使用signal() 或者singnAll()方法时,线程会重新获得锁并继续执行。或者当线程被中断时,也能跳出等待,和Object.wait()方法相似。*/void await() throws InterruptedException;/**和await方法基本相同,但不会再等待过程中响应中断。*/void awaitUninterruptibly();long awaitNanos(long nanos
2021-10-13 19:54:07 98
原创 JAVA并发包:重入锁ReentrantLock
重入锁ReentrantLock 可以完全替代synchronized关键字。重要方法: lock():获得锁,如果锁被占用,则等待。 lockInterruptibly():获得锁,但优先响应中断。 tryLock():尝试获得锁,如果成功返回true,失败返回false;该方法不等待,立即返回。 tryLock(long time,TimeUnit unit):在给定的时间内尝试获得锁。 unlock():释放...
2021-10-13 19:39:25 91
原创 Thread方法说明
run():需要重载此方法,把让线程做的事件放到此方法中。interrupted():通知目标线程中断,也就是设置中断标志位。中断标志位表示当前线程已经中断了。isInterrupted():判断当前线程是否有被中断(通过检查中断标志位)join():使调用线程在当前线程进行等待,当线程执行完成后,被等待的线程会在推对象实例上使用类似wait()或者notify()等方法。yield():一旦执行,他会使当前线程让出cpu。...
2021-10-12 21:01:42 87
原创 线程Thread状态
/** * 表示刚刚创建的线程,这种线程还没开始执行。线程进行start()后才开始执行。 */ * 线程执行的状态,处于此种状态,表示线程所需的资源已经准备好RUNNABLE * 阻塞状态,线程遇到了synchronized块就会进入BLOCKED阻塞状态,这时线程会停止执行,直到 * 获得请求锁。BLOCKED * 无时间限制等待状态;等待一些特殊事件,比如,通过wait()方法等待notify()方法,...
2021-10-12 19:59:40 94
原创 JAVA虚拟机运行时数据区
分为两部分:线程共享内存与线程独立内存两部分。线程共享包括堆内存和方法区。线程独立内存包括Java虚拟机栈、程序计数器、本地方法栈。堆内存是虚拟机管理的最大的一块内存,也是垃圾收集器管理的主要区域。用于存放对象实例,收集器基本都采用分代收集算法,所以堆可以区分为新生代和老年代,更细致一些Eden空间,fromsurvivor空间和Tosurvivor空间。方法区在java虚拟机中描述为堆的一个逻辑部分。存储着虚拟机加载的类信息、常量和静态常量,即时编译器编译后的代码等数据。运行时常量时方法...
2021-10-12 14:07:08 83
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人