生产者消费者模式-->管程法 public class TestPC { public static void main(String[] args) { SynContainer container = new SynContainer(); new Productor(container).st ...
分类:
其他好文 时间:
2020-06-26 19:51:16
阅读次数:
70
目录 01.Java和线程 02.Java与协程 03.CPU缓存结构和java内存模型 04.管程-悲观锁和锁优化 05.乐观锁 - 无锁方案 06.线程安全 07.线程池 08.JUC 09.高并发测试 10.类加载器 Java与线程 线程的类型 线程是比进程更轻量级的调度执行单位,线程的引入, ...
分类:
编程语言 时间:
2020-06-26 18:45:04
阅读次数:
72
管程 悲观锁(阻塞) 临界区 一段代码块对共享资源存在多个线程的读写操作, 我们就叫它临界区 临界区存在多个线程竞争共享资源的问题, 由于分时系统, 我们的cpu不能一直负责一条线程的执行, 所以在cpu切换的时候需要保存当时的场景, 之后cpu回来后需要恢复场景再次执行代码, 我们简称这个过程为线 ...
分类:
其他好文 时间:
2020-06-26 18:02:01
阅读次数:
112
计算机科学中, 同步(synchronization)是指两个不同但有联系的概念:进程同步与数据同步。进程同步指多个进程在特定点会合(join up)或者握手使得达成协议或者使得操作序列有序。数据同步指一个数据集的多份拷贝一致以维护完整性。常用进程同步原语实现数据同步。 死锁:某一个进程占有共享资源 ...
分类:
其他好文 时间:
2020-06-25 09:40:03
阅读次数:
83
P23多线程23:Lock锁 P24多线程24:生产者消费者问题 P25多线程25:管程法 P26多线程26:信号灯法 P27多线程27:线程池 P28多线程28:总结 ...
分类:
编程语言 时间:
2020-06-21 09:36:03
阅读次数:
97
6.18 readcount同步 保护? 哲学家吃饭问题 https://wenku.baidu.com/view/90e0bb7f1711cc7931b716f9.html 管程 死锁 Bridge Crossing Example 互为条件的进程发生的死锁/饿死现象 四个必要条件: 占有和等待 ...
分类:
其他好文 时间:
2020-06-18 13:11:26
阅读次数:
59
一、异常 1. 概述 异常:指的是程序在执行过程中,出现的非正常的情况,最终导致JVM虚拟机的非正常停止 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理 异常指的并不是语法错误,语法错了,编译不通过,不会产生字节码文 ...
分类:
编程语言 时间:
2020-06-11 23:21:15
阅读次数:
97
多线程 一、什么是多线程? 进程:正在执行的程序。 线程:可以理解成进程中独立运行的子任务,一个进程至少有一个线程。 多线程:一个进程中有多个线程。 二、为什么要使用多线程? 为了更好地利用CPU资源。 进程之间不能共享数据,线程可以。 系统创建进程需要为该进程重新分配系统资源,创建线程代价比较小。 ...
分类:
编程语言 时间:
2020-05-30 20:00:12
阅读次数:
59
进程同步、进程互斥的两种机制,信号量机制(Semaphores)已总结过了,这里简单总结下另一种机制:管程(Monitor)。 信号量和管程是等价的,即信号量能实现的用管程也能实现,反之亦然。 但管程封装了同步操作,对进程隐蔽了同步细节,简化了同步功能的调用,避免了有意或无意的违法同步操作,给编程带 ...
分类:
系统相关 时间:
2020-05-19 00:20:49
阅读次数:
121
1.什么是Singleton?Singleton,即单例,在Java中表示的是单例模式,所谓的单例模式,指的就是在程序中,有且仅有一个该实例对象。单:唯一,单独。例:实例对象。2.单例模式有几种创建方式?2.1饿汉式(在程序启动过程中,就开始创建实例对象,饿汉式是线程安全的,它的缺点是不管程序是否需要该实例都会创建)2.1.1直接创建实例对象(简介明了)将构造方法私有化。提供一个static修饰的
分类:
其他好文 时间:
2020-05-14 01:31:53
阅读次数:
62