![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java基础
温故而知新
囤梦smile
这个作者很懒,什么都没留下…
展开
-
(五)多线程基础篇 ——之停止线程
Java中停止线程需要从下面三个方面进行考虑;停止线程的正确方式是使用中断想停止线程需要停止方,被停止方,被停止方的子方法相互配合扩展到常见的错误停止线程方法:已被废弃的stop/suspend,无法唤醒阻塞线程的volatile正确方式是中断A. 从外部直接调用该线程的stop方法,直接把线程停下来(此种方式已经被废弃掉)。B. 从外部通过中断通知线程停止,然后切换到被停止的线程,该线程执行一系列逻辑后自己停止。很明显B方法要比A方法好很多,A方法太暴力了,你根本不知道被停止的线程在执行原创 2020-12-29 16:06:30 · 130 阅读 · 3 评论 -
(四)多线程基础篇 ——之yield()
线程让步( yield )yield()的作用是让步。它能让当前线程由“运行状态”进入到“就绪状态”,从而让其它具有相同优先级的等待线程获取CPU 执行执行权;但是,并不能保证在当前线程调用yield()之后,其它具有相同优先级的线程就一定能获得执行权;也有可能是当前线程又进入到“运行状态”继续运行!yield() 不会释放锁。yield() 与 wait()的比较我们知道,wait()的作用是让当前线程由“运行状态”进入“等待(阻塞)状态”的同时,也会释放同步锁。而yield()的作用是让步,它也会原创 2020-12-21 16:11:10 · 225 阅读 · 0 评论 -
(三)多线程基础篇 —— 多线程wait和notify的理解与使用
对于wait()和notify()的理解对于wait()和notify()的理解,还是要从jdk官方文档中开始,在Object类方法中有:void notify()Wakes up a single thread that is waiting on this object’s monitor.译:唤醒在此对象监视器上等待的单个线程void notifyAll()Wakes up all threads that are waiting on this object’s moni转载 2020-12-19 16:07:14 · 258 阅读 · 1 评论 -
(二)多线程基础篇 —— Synchronized 多线程同步讲解
前言:在Java多线程编程中,我们长需要考虑线程安全问题,其中关键字Synchronized,在线程同步中扮演着重要的作用,我将讲解Java关键字Synchronized的知识1.定义Synchronized 是Java中的一个关键字,被Synchronized修饰的方法 / 代码,保证同一时刻最多只有1个线程执行 。2.Synchronized 原理实现原理: JVM 是通过进入、退出对象监视器(Monitor)来实现对方法、同步块的同步的,而对象监视器的本质依赖于底...原创 2020-08-12 16:39:22 · 308 阅读 · 0 评论 -
(一)多线程基础篇 —— 线程创建的几种方式
一,基础概念:1. 1 进程 通过任务管理器可以看到进程的存在,可以简单理解为:进程是正在运行的程序,进程是系统进行资源分配和调用的独立单 位,每一个进程都有它自己的内存空间和系统资源,多进程可以提高CPU的使用率。1.2. 线程同一个进程内可以同时执行多个任务,每一个任务就可以看做是一个线程。线程:是程序的执行单元,执行路径。是程序使用CPU的基本单位1.3CPU 寄存器和程序计数器每个任务运行前,CPU 都需要知道任务从哪里加载、又从哪里开始运行,也就是说,需要...原创 2020-07-23 14:46:24 · 262 阅读 · 0 评论