Java高级
没羽毛的小鸟
这个作者很懒,什么都没留下…
展开
-
为什么要线程池?怎么使用线程池
文章目录一、为什么要使用线程池?(一)提高程序的执行效率(二)控制线程的数量,防止程序崩溃二、怎么使用线程池(一)使用线程池的一些常用的方法1.newCachedThreadPool2.newFixedThreadPool3.newSingleThreadExecutor4.newScheduledThreadPool5.newSingleThreadScheduledExecutor6.newW...原创 2019-07-28 22:12:20 · 4226 阅读 · 0 评论 -
什么叫线程间的数据共享?如何实现线程间的数据共享?
线程间的数据共享一、为什么要实现线程间的数据共享1.线程运行方式默认为并行运发2.什么是串行运行?二、如何实现线程间的数据共享(多线程同步原理)1.为什么通过synchronized就能实现多线程间串行运行呢?①只能有一个线程位于临界区②临界区中的代码具有互斥性、唯一性和排它性:2.误区:“共享数据”是一个表达式相同,内容不同的非共享数据三、synchronized关键字1.声明同步方法2.声明同...原创 2019-07-27 21:44:55 · 3358 阅读 · 0 评论 -
线程的常用方法,如何调用线程的方法?
文章目录一、interrupt()方法二、join()方法一、interrupt()方法interrupt()方法使用详解二、join()方法join()方法使用详解原创 2019-07-27 21:43:56 · 2896 阅读 · 0 评论 -
如何正确学习setDamon?调用setDamon方法的程序执行过程是什么?
文章目录一、setDamon方法1.例一2.例二3.例三一、setDamon方法用于将一个尚未调用线程start方法的线程设置为守护线程1.例一守护线程随着==最后一个非守护线程的死亡(主线程)==而死亡import java.util.Date;class TimeThread extends Thread{ @Override public void run() { ...原创 2019-07-27 21:40:29 · 485 阅读 · 0 评论 -
如何通过反射获取及操纵成员变量?
文章目录一、获取成员变量(1)Field[] getFields()(2)Field getField(String fieldName)(3)Field[] getDeclaredFields()(4)Field getDeclaredField(String fieldName)二、操纵成员变量--获取成员变量信息(1)Class<?> getDeclaringClass()(2)...原创 2019-07-31 21:44:43 · 333 阅读 · 0 评论 -
如何通过反射获取并操纵构造方法?
文章目录一、构造方法一、获取构造方法(1)Constructor[] getConstrutors()(2)Constructor getConstrutor(Class<?>... parameterTypes)①源代码②执行结果③分析(3)Constructor<?>[] getDeclaredConstructors()(4)Constructor getDeclar...原创 2019-07-31 21:43:50 · 533 阅读 · 0 评论 -
join方法使用详解,如何使用join方法?
文章目录一、join方法1.例一2.例二一、join方法执行该方法的线程进入阻塞状态,直到调用该方法的线程结束后再由阻塞转为就绪状态1.例一import java.util.Date;class TimeThread extends Thread{ @Override public void run() {//计数器线程进入阻塞状态后,时间线程获得了CPU的使用权,进入运行状态...原创 2019-07-26 15:06:30 · 1577 阅读 · 0 评论 -
interrupt方法使用详解,如何使用interrupt方法?
interrupt方法一.interrupt方法1.例12.例23.例34.例4一.interrupt方法结束线程在调用Object类的wait方法或该类的join方法、sleep方法过程中的阻塞状态,并在调用wait、join和sleep方法处产生InterruptedException异常1.例1import java.util.Date;public class Test {...原创 2019-07-26 11:18:30 · 3812 阅读 · 0 评论 -
线程的生命周期的定义、其运行过程即相关例子分析
文章目录一、线程的生命周期的定义1.新建状态(New)2.就绪状态(Runnable)2.运行状态(Running)①等待阻塞②同步阻塞③其他阻塞2.死亡状态(Dead)二、简述线程的生命周期的运行过程三、程序判读1.代码2.运行结果3.分析一、线程的生命周期的定义1.新建状态(New)新创建了一个线程对象。2.就绪状态(Runnable)线程对象创建后,其他线程调用了该对象的start...原创 2019-07-26 10:20:19 · 705 阅读 · 0 评论 -
什么是进程?进程与线程的关系?如何创建线程?
文章目录一、进程与线程(一)什么是进程1.程序2.进程3.例子二、线程常用方法三、线程间数据共享四、线程间协作五、线程池一、进程与线程(一)什么是进程1.程序为了解决某一问题用计算机语言编写的命令的集合2.进程是程序的一次执行过程3.例子import java.text.SimpleDateFormat;import java.util.Date;public class T...原创 2019-07-26 10:17:50 · 886 阅读 · 0 评论 -
java反射机制是什么?Class有什么特点?怎么获取Class类实例?
文章目录一、什么是java反射机制?二、Class类有什么特点?1.Class的特点一、什么是java反射机制?Java反射机制是在运行状态中,对于任何一个类我们都可以调用其中的属性和方法,对于任意一个对象我们都可以调用它的属性和方法,这种动态操作类和对象的属性和方法的机制叫Java反射机制。Java反射机制为了实现对成员变量,普通方法,构造方法的操作,需要借助Java自身提供的java.l...原创 2019-07-30 20:21:56 · 1403 阅读 · 0 评论 -
如何实现线程协作?
文章目录一、如何实现线程协作?1.synchronized关键字2.解决线程协作问题①wait()方法②notify()方法③notifyAll()方法二、实现线程协作需要注意什么?三、同样是阻塞sleep方法和wait方法有什么区别?一、如何实现线程协作?1.synchronized关键字synchronized关键字只是起到了多个线程“串行”执行临界区中代码的作用,但是哪个线程先执行,哪...原创 2019-07-30 18:10:28 · 926 阅读 · 0 评论 -
深入剖析为什么要使用线程协作?
文章目录一、为什么要使用线程协作?(一)没有线程协作时1.源代码2.代码分析(二)改进1.源代码2.代码分析(三)性能优化1.源代码2.代码分析(四)深入优化1.源代码2.代码分析一、为什么要使用线程协作?(一)没有线程协作时1.源代码package multithreading;import java.text.SimpleDateFormat;import java.util.D...原创 2019-07-28 13:01:30 · 259 阅读 · 0 评论