从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。 ...
分类:
编程语言 时间:
2020-08-09 09:23:44
阅读次数:
101
1. 互斥锁: 对全局变量进行锁定,保证同一时刻只有一个线程在操作共享全局变量,保证了共享数据操作的完整性 互斥锁应用场景: 资源竞争问题 互斥锁的缺点: 阻止了多线程并发执行,含锁的代码只能以单线程模式执行,效率就大大地下降了; 容易出现死锁问题; 2. 死锁问题: 在两个或多个线程中,如果每个线 ...
分类:
编程语言 时间:
2020-08-08 21:19:12
阅读次数:
81
互斥同步 互斥同步(Mutual Exclusion & Synchronization)是常见的一种并发正确性保证手段。同步是指子啊多个线程并发访问共享数据时,保证共享数据在同一时刻只能被一个(或者是一些,使用信号量的时候)线程使用。而互斥是实现同步的一种手段,临界区(Critial Sectio ...
分类:
编程语言 时间:
2020-08-04 09:51:42
阅读次数:
67
前言 个人珍藏的80道Java多线程/并发经典面试题,因为篇幅太长,现在先给出1-10的答案解析哈,后面一起完善,并且上传github哈~ ? https://github.com/whx123/JavaHome ? 「公众号:捡田螺的小男孩」 1. synchronized的实现原理以及锁优化? ...
分类:
编程语言 时间:
2020-07-29 10:36:49
阅读次数:
92
目录结构: (1)锁机制概述 什么是锁,以及为什么使用锁和锁的运作? 锁定机制分类? 按封锁类型分类 按封锁的数据粒度分类 行级锁定 表级锁定 页级锁定 数据库事务机制。 什么叫事务?简称ACID。 事务引起的并发调度问题 理论上的事务的三级封锁协议 事务隔离级别 活锁与死锁的探究 活锁 死锁 (2 ...
分类:
数据库 时间:
2020-07-22 15:35:55
阅读次数:
69
ThreadLocal 概述 threadlocal是一个线程内部的存储类,可以在指定线程内存储数据,数据存储以后,只有指定线程可以得到存储数据 ThreadLocal提供了线程内存储变量的能力,这些变量不同之处在于每一个线程读取的变量是对应的互相独立的。通过get和set方法就可以得到当前线程对应 ...
分类:
其他好文 时间:
2020-07-20 22:51:42
阅读次数:
83
一、Java 线程实现/创建方式 注意: ? 新建的线程不会自动开始运行,必须通过start( )方法启动 ? 不能直接调用run()来启动线程,这样run()将作为一个普通方法立即执行,执行完毕前其他线程无法并发执行 ? Java程序启动时,会立刻创建主线程,main就是在这个线程上运行。当不再产 ...
分类:
编程语言 时间:
2020-07-20 10:21:52
阅读次数:
74
三、JVM垃圾回收 垃圾回收,就是通过垃圾收集器把内存中没用的对象清理掉。垃圾回收涉及到的内容有:1、判断对象是否已死;2、选择垃圾收集算法;3、选择垃圾收集的时间;4、选择适当的垃圾收集器清理垃圾(已死的对象)。 1、判断对象是否已死 判断对象是否已死就是找出哪些对象是已经死掉的,以后不会再用到的 ...
分类:
其他好文 时间:
2020-07-13 11:44:42
阅读次数:
60
前言 java语言的学习是一个体系,所以如果想要对java的编程有一个很精通的一个掌握,它离不开很多基础的知识点,比如JVM的原理、java多线程并发编程、数据结构等等。所以我这里对我学习的java的课程进行定期的总结,来记录我学习java的一些想法和心得。也希望能通过我的这些分享,给需要的学习某方 ...
分类:
编程语言 时间:
2020-07-08 19:50:06
阅读次数:
69
这是我在写 Java 并发程序的时候遵循的一些最佳实践: a)给线程命名,这样可以帮助调试。 b)最小化同步的范围,而不是将整个方法同步,只对关键部分做同步。 c)如果可以,更偏向于使用 volatile 而不是 synchronized。 d)使用更高层次的并发工具,而不是使用 wait() 和 ...
分类:
编程语言 时间:
2020-07-05 23:19:05
阅读次数:
95