随笔分类 -  多线程高并发

摘要:currentThread的详解 currentThread方法是Thread类的一个静态方法,用来获取当前运行的代码段,正在被哪个线程调用。我们先来看一眼源码。 是一个native方法。直接与系统层面做交互。 下面看一段代码 public static void main(String[] arg 阅读全文
posted @ 2022-02-20 18:52 经典鸡翅 阅读(584) 评论(0) 推荐(0) 编辑
摘要:从thread类中,我们可以看到类中预先定义了三个优先级。 通过getpriority可以看到新建线程的默认等级。 public class ExtendsThread { public static void main(String[] args) { MyThread c = new MyThr 阅读全文
posted @ 2021-02-13 11:37 经典鸡翅 阅读(1190) 评论(0) 推荐(0) 编辑
摘要:在我们的Thread类中,我们可以看到多线程有六种状态。 NEW:初始状态 RUNNABLE:运行状态 BLOCKED:阻塞状态 WAITING:等待状态 TIMED_WAITING:超时等待状态 TERMINATED:终止状态 六种状态之间的转化关系如下: 1、NEW 表示线程创建成功,但没有运行 阅读全文
posted @ 2021-02-13 11:29 经典鸡翅 阅读(589) 评论(0) 推荐(0) 编辑
摘要:前言 大年初二,大家新年快乐,我又开始码字了。写这篇文章,源于在家和基友交流的时候,基友问到了,我猛然发现还真是这么回事,多线程启动调用的都是start,那么为什么没人掉用run呢?于是打开我的idea,翻一波代码,带大家一探究竟。 继承thread类实现多线程 我们知道java有三种方式实现多线程 阅读全文
posted @ 2021-02-13 11:16 经典鸡翅 阅读(689) 评论(0) 推荐(0) 编辑
摘要:前言 本篇博客来自 https://www.cnblogs.com/clover-forever/p/12616869.html 自己在此记录一下,方便日后复习。 虚假唤醒的概念 jdk官方文档解释: 所以说在wait和notify一块使用时,如果使用if作为条件时,会有虚假唤醒的情况发生,所以必须 阅读全文
posted @ 2020-04-13 21:58 经典鸡翅 阅读(3567) 评论(0) 推荐(2) 编辑
摘要:前言 wait和notify必须在synchronized块中,否则会抛出IllegalMonitorStateException。 原因 代码示例 代码示例的问题所在 一个消费者调用take,发现buffer.isEmpty。 在消费者调用wait之前,由于cpu的调度,消费者线程被挂起,生产者调 阅读全文
posted @ 2020-04-13 21:46 经典鸡翅 阅读(1765) 评论(0) 推荐(0) 编辑
摘要:前言 最近在复习锁这一块,对java中的锁进行整理,本文介绍各种锁,希望给大家带来帮助。 Java的锁 乐观锁 乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,采取在写时先读出 阅读全文
posted @ 2020-04-12 17:55 经典鸡翅 阅读(326) 评论(0) 推荐(1) 编辑
摘要:前言 最近被问到了线程池的相关问题。于是准备开始写一些多线程相关的文章。这篇将介绍一下线程池的基本使用。 Executors Executors是concurrent包下的一个类,为我们提供了创建线程池的简便方法。 Executors可以创建我们常用的四种线程池: (1)newCachedThrea 阅读全文
posted @ 2020-03-24 17:21 经典鸡翅 阅读(1890) 评论(0) 推荐(3) 编辑
摘要:前言 最近被问到了这个问题,第一次回答的也是很不好,在此参考网上答案进行整理记录。供大家学习参考。 Synchronized修饰非静态方法 Synchronized修饰非静态方法,实际上是对调用该方法的对象加锁,俗称“对象锁”。 Java中每个对象都有一个锁,并且是唯一的。假设分配的一个对象空间,里 阅读全文
posted @ 2020-03-15 22:29 经典鸡翅 阅读(5968) 评论(0) 推荐(3) 编辑

点击右上角即可分享
微信分享提示