全国校区
北京
深圳
上海
广州
武汉
成都
西安
郑州
南京
长沙
Java实验班
Java就业班
Java在职加薪班
Java架构师班
Java夜校班
JavaSE
数据库
JavaWeb
流行框架
分布式
微服务
Java反射(Reflection)就是在运行Java程序时,可以加载、探知、使用编译期间完全未知的类。也就是说,Java程序可以加载一个运行时才得知类名的类,获得类的完整构造方法,并实例化出对象,给对象属性设定值或者调用对象的方法。Java反射可以用于判断任意对象所属的类,获得Class对象,构造任意一个对象...
在java中,每个对象都有两个池,锁池和等待池。Java平台中,因为有内置锁的机制,每个对象都可以承担锁的功能。Java虚拟机会为每个对象维护两个“队列”(姑且称之为“队列”,尽管它不一定符合数据结构上队列的“先进先出”原则):一个叫EntrySet(入口集),另外一个叫WaitSet(等待集)。对于任意的对o...
现在主流操作系统的任务调度除了具有时间片轮转的特点外,还有优先级调度(PrioritySchedule)的特点。优先级调度决定了线程按照什么顺序轮流执行,在具有优先级调度的系统中,线程拥有各自的线程优先级(ThreadPriority)。具有高优先级的线程会更早地执行,而低优先级的线程通常要等没有更高优先级的可...
进程的本质是程序在计算机上的一次执行活动,线程的本质是可执行代码的可分派单元,然而许多Java初学者很容易混淆两者的概念。事实上,多线程和多进程除了本质上的不同,在用法和作用方面也大不相同。本文我们就一起来探究多线程和多进程区别。说到多线程和多进程我们就不得不说到并发技术,可以让我们在同一时间同时执行多条任务。...
线程是一个动态执行的过程,线程也有“生老病死”的生命周期,线程的生命周期其实就是一个线程从创建到消亡的过程。对于有生命周期的事物,要学好它,思路非常简单,只要能搞懂生命周期中各个节点的状态转换机制就可以了。在Java语言中,线程的生命周期中要想确定一个线程的当前状态,可调用getState方法。下面就借助get...
说到多线程下载,我们可以把线程理解为下载的通道,一个线程就是文件下载的一个通道,多线程就是同时打开了多个通道对文件进行下载。当服务器提供下载服务时,用户之间共享带宽,在优先级相同的情况下,总服务器会对总下载线程进行平均分配。我们平时用的许多下载器下都是多线程下载。本文我们就来看看多线程下载的完整流程。1.入口D...
不要通过共享内存来通信,而应该通过通信来共享内存。由此可见,共享数据其实也是一门技术很深的活。而多线程编程的优势之一在于线程间共享数据的开销很小。多线程间共享数据主要有以下两种情况:一、每个线程执行的代码相同若每个线程执行的代码相同,共享数据就比较方便。可以使用同一个Runnable对象,这个Runnable对...
为了解决竞争条件带来的问题,我们可以对资源上锁。多个线程共同读写的资源称为共享资源,也叫临界资源。涉及操作临界资源的代码区域称为临界区(CriticalSection)。同一时刻,只能有一个线程进入临界区。我们把这种情况称为互斥,即不允许多个线程同时对共享资源进行操作,在同一时间只能被一个线程所占有的锁称之为J...
许多学习Java的小伙伴为了攻克Java多线程付出了很多的努力,也下了很多功夫。然而,我们在学会了多线程的各种用法之后便不求甚解了,只是追求学会使用多线程的方法,未免有点舍本逐末了。在我看来,单纯的会用只是知其然而不知其所以然。所以,我们对多线程的学习也应该知其所以然:多线程有什么用呢?下面为大家揭开这个问题的...
在Java多线程环境中,为保证所有线程的执行能按照一定的规则执行,JVM实现了一个线程调度器,它定义了线程调度的策略,对于CPU运算的分配都进行了规定,按照这些特定的机制为多个线程分配CPU的使用权。Java线程调度是Java多线程的核心,只有良好的调度,才能充分发挥系统的性能,提高程序的执行效率。线程调度是指...