多线程
文章平均质量分 68
-星雨-
缘不知所起
展开
-
多线程开发
多线程开发1 多线程开发示例1.1 应用背景1.2 设计要点1.2.1 防止重复1.2.2 失败机制1.2.3 线程池选择1.2.4 核心代码2 问题2.1 什么是线程2.2 Java里怎么创建线程2.3 说说线程的生命周期和状态2.4 线程死锁2.5 怎么避免死锁呢?2.6 说说 synchronized的用法吧2.7 除了使用synchronized,还有什么办法来加锁吗?详细说一下2.8 说说synchronized和Lock的区别2.9 你提到了synchronized基于jvm层面,对这个有了解吗转载 2021-06-24 22:50:20 · 476 阅读 · 0 评论 -
sleep()和wait()
sleep和wait1 sleep2 wait3 区别、同1 sleep每个对象都有一个锁来控制同步访问,Synchronized关键字可以和对象的锁交互,来实现同步方法或同步块。sleep()方法正在执行的线程主动让出CPU(然后CPU就可以去执行其他任务),在sleep指定时间后CPU再回到该线程继续往下执行(注意:sleep方法只让出了CPU,而并不会释放同步资源锁!);sleep() 方法是线程类(Thread)的静态方法,让调用线程进入睡眠状态,让出执行机会给其他线程,等到休眠时间结束后,原创 2021-06-17 20:21:53 · 1072 阅读 · 1 评论 -
为什么要用线程池?
为什么要用线程池?池化技术的思想主要是为了减少每次获取资源的消耗,提高资源的利用率。池化思想的应用:线程池、数据库连接池、Http连接池等等。线程池提供了一种限制和管理资源的方法(包括执行一个任务)。每个线程池还维护一些基本统计信息,例如:已完成任务的数量。好处:降低资源的消耗:通过重复利用已创建的线程来降低线程创建和销毁时的系统资源消耗。提高响应时间:当任务到达时,任务可以不需要等待线程创建就可以立刻执行。提高线程的可管理性:线程是稀缺资源,如果无限制的创建,不仅会消耗大量的系统资源,还会原创 2021-06-07 20:34:31 · 85 阅读 · 0 评论 -
synchronized 关键字和 volatile 关键字的区别
synchronized 关键字和 volatile 关键字的区别synchronized关键字和volatile关键字是两个互补的存在,而不是对立的存在。volatile关键字是线程同步的轻量级实现,而synchronized是线程同步的重量级实现,从性能上看,肯定是volatile要快一点。volatile关键字只能修饰变量,而synchronized关键字可以修饰代码块和方法。volatile关键字可以保证数据的可见性但不能保证原子性,而synchronized两者都可以保证。原创 2021-06-07 17:53:37 · 429 阅读 · 0 评论 -
实现单例模式
实现单例模式public class SingletonDemo { /** * 禁止指令重排volatile */ private static volatile SingletonDemo instance = null; // private static SingletonDemo instance=null; private SingletonDemo() { System.out.println(Thread.curre原创 2021-05-28 19:18:35 · 51 阅读 · 0 评论 -
多线程、死锁
多线程1. 为什么要使用多线程?使用多线程可能带来什么问题?2. 造成线程死锁的原因有哪些?2.1 产⽣死锁必须具备以下四个条件:2.2 如何避免线程线程死锁呢?1. 为什么要使用多线程?使用多线程可能带来什么问题?使用多线程是为了提高程序的执行效率和运行速度。但是如果使用不当的话,不仅不能提高执行效率,还会造成很多问题,比如:线程不安全、内存泄露,死锁等。2. 造成线程死锁的原因有哪些?线程死锁:多个线程同时被阻塞,他们中的一个或者多个都在等待某个资源被释放。由于线程被无限期阻塞,因此程序不可能原创 2021-05-28 17:14:08 · 69 阅读 · 0 评论 -
Java的锁
Java的锁1. 公平锁(按顺序排队)和非公平锁(抢占式排队)1.1 是什么1.2 两者区别1.3 小总结2. 可重入锁(递归锁)2.1 递归锁是什么2.2 ReentrantLock/Synchronized 就是一个典型的非公平可重入锁3. 自旋锁(spinlock)3.1 原理代码3.3 插曲--Thread.sleep和TimeUnit.SECONDS.sleep4. 独占锁(写锁)/共享锁(读锁)/互斥锁4.1 概念4.2 代码1. 公平锁(按顺序排队)和非公平锁(抢占式排队)1.1 是什么转载 2021-05-12 13:34:41 · 108 阅读 · 0 评论 -
ArrayList、HashSet、HashMap是线程不安全
ArrayList、HashSet、HashMap是线程不安全1. ArrayList是线程不安全的,请编写一个不安全的案例并给出解决方案1.1 ArrayList线程不安全1.2 为什么会发生这种情况1.3 三种解决办法2. HashSet是线程不安全的3. HashMap是线程不安全的1. ArrayList是线程不安全的,请编写一个不安全的案例并给出解决方案1.1 ArrayList线程不安全 private static void NotSafe() { List<原创 2021-04-22 14:58:50 · 384 阅读 · 0 评论