
java多线程
sky国士无双
不积跬步,无以至千里。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
《java并发编程的艺术》二 java并发机制的底层实现原理
一、volatile的应用 volatile的定义与实现原理 volatile的两条实现原则: (1)Lock前缀指令会引起处理器缓存回写到内存。 (2)一个处理器的缓存回写到内存会导致其他处理器的缓存无效。 如果通过嗅探一个处理器来检测其他处理器打算写内存地址,而这个地址当前处于共享状态,那么正在嗅探的处理器将使它的缓存行无效,在下次访问相同内存地址时,强制执行缓存行填充。 二、synchron...原创 2020-02-29 15:57:06 · 118 阅读 · 0 评论 -
《java并发编程的艺术》一并发编程的挑战
一、上下文切换 CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务,但是,在切换前会保存上一个任务的状态,以便下次切换回这个任务时,可以再加载这个任务的状态,所以任务从保存到再加载的过程就是一次上下文切换。这样的切换是会影响效率的,同样上下文切换也会影响多线程的执行速度。 二、多线程一定快吗 当并发执行累加操作不超过百万次时,速度会比串行执行累加操作要慢,那么,为...原创 2020-02-28 15:55:22 · 157 阅读 · 0 评论 -
《java多线程核心技术》四 Lock的使用
一、使用ReentrantLock类 public class MyService { public Lock lock = new ReentrantLock(); public void testMethod() { lock.lock(); for (int i = 0; i < 5; i++) { System...原创 2020-02-27 21:00:51 · 148 阅读 · 0 评论 -
《java多线程核心技术》三线程间通信
一、等待/通知机制 1. 不使用等待/通知机制实现线程间通信 使用sleep()和while(true)死循环来实现多个线程间通信 package multiThread; import java.util.ArrayList; import java.util.List; /** * @author chengzhengda * @version 1.0 * @date 2020-02...原创 2020-02-25 15:47:54 · 168 阅读 · 0 评论 -
《java多线程核心技术》二 对象及变量的并发访问
一、synchronized同步方法 (1)方法内的变量为线程安全 非线程安全问题存在于实例变量中,如果是方法内部的私有变量,则不存在非线程安全的问题,所得结论也就是线程安全的了。 (2)实例变量非线程安全 如果多个线程共同访问一个对象中的实例变量,则有可能出现非线程安全问题。 在两个线程访问同一个对象中的同步方法时一定是线程安全的。 (3)多个对象多个锁 关键字synchronized取得的锁都...原创 2020-02-23 14:46:09 · 109 阅读 · 0 评论 -
《java多线程编程核心技术》一
1. 线程与进程的区别? 进程是受操作系统管理的基本运行单元,线程可以理解成进程中独立运行的子任务。举个例子,qq就是一个线程,其中的视频、聊天、传输就是不同的线程。 2. 多线程的优势是啥? 使用多线程,可以在同一时间内运行多个不同的任务,最大限度的利用cpu的资源。cpu在这些任务间不停的切换,由于切换的速度非常快,给使用者的感觉就是这些任务在同时执行。举个例子,当一个任务A需要执行10s,另...原创 2019-07-21 23:13:15 · 95 阅读 · 0 评论