0-100求和:class MyTask extends RecursiveTask<Integer>{ public static final int ADJAST_VALUE = 10; private int begin; private int end; private int result ...
分类:
其他好文 时间:
2020-03-16 23:31:24
阅读次数:
67
读锁也叫共享锁 写锁也叫独享锁 读锁写锁都会造成死锁的问题 class MyCache{ private volatile Map<String,String> map = new HashMap<>(); private ReadWriteLock rwLock = new ReentrantRe ...
分类:
其他好文 时间:
2020-03-15 19:15:45
阅读次数:
77
线程常见函数 来源类 是否 Static 说明 是否释放锁 sleep() Thread static 只能操作当前线程。时间到后(没有interrupt的情况下),回到“就绪”状态 不 yield() Thread static 只能操作当前线程。只让出CPU时间片。不让出持有的锁和其他资源(磁盘 ...
分类:
编程语言 时间:
2020-03-14 20:29:38
阅读次数:
64
易错点1:锁一个可变对象 package cn.enjoyedu.ch1.syn; /** * 类说明:错误的加锁和原因分析 */ public class TestIntegerSyn { public static void main(String[] args) throws Interrup ...
分类:
编程语言 时间:
2020-03-14 00:59:20
阅读次数:
78
在 JUC 下包含了一些常用的同步工具类,今天就来详细介绍一下,CountDownLatch,CyclicBarrier,Semaphore 的使用方法以及它们之间的区别。 一、CountDownLatch 先看一下,CountDownLatch 源码的官方介绍。 意思是,它是一个同步辅助器,允许一 ...
分类:
其他好文 时间:
2020-03-06 20:02:20
阅读次数:
59
参考 设计模式 策略模式 我们可以优化if else代码段,而在 Spring(Boot) 中,借助 ApplicationContext 扫描,可以使代码更加干净。 话不多说,亮代码: 首先按照策略模式的写法,创建一个Handle接口,用于区分处理策略。 然后创建对应的 唤醒处理机和睡觉处理机 : ...
分类:
其他好文 时间:
2020-03-05 22:06:48
阅读次数:
64
# -*- coding:utf-8 -*- import os import sys import time import servicemanager import win32serviceutil import win32service import win32event import win ...
分类:
其他好文 时间:
2020-03-04 09:25:42
阅读次数:
66
CPU 在运行时为了响应外部的请求,对外提供了一个中断引脚。CPU 在每个指令周期的最后一个晶振周期检查中断引脚,如果有中断任务,则立即停止手中的工作(当然要先保存现场)调用相应中断号的中断处理程序对中断做出响应。 进程在运行时为了响应外部请求,对外提供了信号队列。在每次由核心态转为用户态(比如由进 ...
分类:
其他好文 时间:
2020-03-02 00:40:44
阅读次数:
86
DAY14 1.等待唤醒机制 1.1 线程间通信 概念:多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同。 比如:线程A用来生成包子的,线程B用来吃包子的,包子可以理解为同一资源,线程A与线程B处理的动作,一个是生产,一个是消费,那么线程A与线程B之间就存在线程通信问题。 1.2 等待 ...
分类:
编程语言 时间:
2020-03-01 22:06:41
阅读次数:
76
结论:线程池管理的线程不用销毁,起到复用效果。使用Thread.currentThread().interrupt();好像也没有明显的效果。线程池的线程就像外包公司的员工一样,招进来了,即使没有活干也要有一个工号 通过这个动画可以推测 newFixedThreadPool如果需要的线程数超出了线程 ...
分类:
编程语言 时间:
2020-02-28 15:41:42
阅读次数:
151