java并发编程
劉胡來
这个作者很懒,什么都没留下…
展开
-
《深入理解Java虚拟机 JVM高级特性与最佳实践》读书笔记--JAVA自旋锁与自适应自旋锁
自旋锁释义:请求锁的线程(假设为线程A)再未获得锁的时候,不进入阻塞状态,而是让它「再执行一会」即占用CPU一会,看看持有锁的线程是否很快释放锁资源。但是为了让这个线程A进入「等待」的状态,需要让它执行一个忙循环(自旋),这项技术称为自旋锁。自旋锁的优劣势分析线程A的状态切换是由系统进行的,而这个过程则会消耗系统资源的,如果请求锁的「忙循环」时在一个很小的时间片之内就得到锁,...原创 2020-05-08 16:19:18 · 329 阅读 · 0 评论 -
Java 多线程Latch模式-对比IOS 的线程依赖
Latch 模式背景释义:有A、B、C、D若干个并行任务,现在F任务需要等ABCD全部完成之后再进行,只要其中任一一个并发任务未执行完F任务就阻塞或者抛出超时异常、取消任务代码翻译:抽象任务接口约束类public abstract class Latch { protected int limit; public Latch(int limit){ ...原创 2020-04-29 12:19:52 · 19460 阅读 · 0 评论 -
java 多线程-Balking模式(犹豫模式)
#原文案例来自于《java 高并发编程详解》Balking 模式释义比如我们在用word 编写文档的时候,每次文字编辑都代表着文档的状态发生了改变,除了我们手动使用ctrl+s保存文档以外,word还可以设置自动保存。如果word自动保存文档的线程正在准备执行保存动作的时候,恰好我们手动进行了保存动作,那么自动保存文档的线程将会放弃本次保存动作—摘自《java 高并发编程详解》下面用代码...原创 2020-04-26 09:16:08 · 217 阅读 · 0 评论 -
Java Balking模式
#原文案例来来自于《java 高并发编程详解》Balking 模式释义比如我们在用word 编写文档的时候,每次文字编辑都代表着文档的状态发生了改变,除了我们手动使用ctrl+s保存文档以外,word还可以设置自动保存。如果word自动保存文档的线程正在准备执行保存动作的时候,恰好我们手动进行了保存动作,那么自动保存文档的线程将会放弃本次保存动作—摘自《java 高并发编程详解》下面用代...原创 2020-04-25 22:23:39 · 19368 阅读 · 0 评论 -
java多线程--简易使用同步锁实现一对一交替打印
一、本例需要分析的地方不多,只需要使用一个同步锁+一个计数器就能搞定,直接奉送源码吧:package com.example.liuxiaobing.statemodel.mutil_thread.onebyoneprint;/** * Created by liuxiaobing * Date on 2018/9/23 * Copyright 2013 - 2018 Qian...原创 2018-09-23 11:56:05 · 20023 阅读 · 1 评论 -
java多线程--ReentrantReadWriteLock的使用
java多线程--ReentrantReadWriteLock的使用读写锁的使用,限制范围为: * 读读锁互斥,读写之间互斥,写写之间互斥一.实例一,读读之间可以共享数据即可以同一时间获取读取锁package readwritelock;import java.util.concurrent.locks.ReentrantReadWriteLock;/**翻译 2017-03-27 09:43:13 · 6697 阅读 · 0 评论 -
java多线程-使用ReentrantLock实现线程的顺序执行
测试例子:package serializer.pattern;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.ReentrantLock;public class Main { volatile private static int nextPrintWho = 1;翻译 2017-03-27 09:17:21 · 26400 阅读 · 1 评论 -
java多线程--ReentrantLock实现生产者与消费者模式
一.本例实现 :一对一交替打印,一.生产者逻辑 :每次只允许一个生产者来进行生产操作(生产者之间互斥访问仓库),必须等消费者取走数据之后,才能进行下一次的生产二.消费者逻辑 :每次只允许一个消费者来进行生产操作(消费者之间互斥访问仓库),必须等生产者生产数据之后,才能进行下一次的消费。二.仓库类:package lock.produce.comsumer;import翻译 2017-03-26 21:25:07 · 21441 阅读 · 0 评论 -
java多线程--停止一个线程的方法小结(来自java多线程编程核心技术)
1.中断方法停止线程:package thread_stop.way;public class MyThread extends Thread { public void run() { try{ for (int i = 0; i < 500000; i++) { if (this.interrupted()) { System.out.prin翻译 2017-03-26 19:43:12 · 575 阅读 · 0 评论 -
android 实现一个按钮按下时总触发一个事件
一.简单的思路为:生产者+消费者模式来实现1.重写这个对象的触摸事件(对触摸事件与事件分发机制的同学不了解的可以查阅其他资料)2.在MotionEvent.ACTION_DOWN:事件中启动一个线程,这个线程类似生产者,它不停的生产想要的事件这里的事件为了调用的顺序,建议采用队列的方式来缓存,事件对象可任意3.在MptionEvent.ACTION_UP:事件中取消这个线程,取消线原创 2017-04-01 09:24:55 · 14169 阅读 · 0 评论 -
java多线程编程--工作线程模式《java多线程编程调试模式》
一.本例来自《java多线程编程调试模式》:题意:模拟流水线上的工人, 工人一直在流水线上作业,零件(可看作客户端发的请求)一到达,工人就开始进行工作,无零件时工作处于等待状态具体的业务代码有详注释:一测试类:package worker.thread.pattern;public class Main { public static void main(Str翻译 2017-03-23 12:56:28 · 13319 阅读 · 0 评论 -
java多线程设计模式--读者与写者模式
来源于:《java多线程设计模式》一书 本例的类结构图:2.Data类:package read.write.pattern;/** * 读者与写者共同要访问的数据类 * @author lxb * */public class Data { private final char[] buffer; private final Read翻译 2017-03-23 10:22:35 · 19846 阅读 · 1 评论