随笔分类 - 并发编程
摘要:ReentrantLock基本概念 ReentrantLock是一个可重入锁,顾名思义,就是支持重进入的锁,它表示该锁能够支持一个线程对资源的重复加锁,并且在获取锁时支持选择公平模式或者非公平模式。与Synchronized不同的是,它使用起来更加灵活,Synchronized加锁释放锁都是隐式
阅读全文
摘要:概述 关键字synchronized可以修饰方法或者以同步代码块的形式来进行使用,它主要确保多个线程在同一时刻只能有一个线程处于方法或者同步块中,它保证了线程对变量访问的可见性和排他性。 同步代码块 public class SynchronizedDemo implements Runnable
阅读全文
摘要:重排序 在程序执行时,为了提高性能,编译器和处理器常常会对指令做重排序。重排序分为三种类型。 编译器优化的重排序。编译器在不改变单线程程序语义的前提下,可以重新安排语句的执行顺序。 指令级并行的重排序。现代处理器采用了指令级并行技术来将多条指令重叠执行。如果不存在数据依赖性,处理器可以改变语句对应机
阅读全文
摘要:线程通信与线程同步 在并发编程中需要解决两个关键问题:1.线程之间如何通信 2.线程之间如何同步。线程通信是指线程之间以何种机制来交换消息。线程之间通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,通过写-读内存中的公共状态进行通信。而在消息传递的并发模型里
阅读全文
摘要:进程 进程就是应用程序在内存中分配的空间,也就是正在运行的程序,各个进程之间互不干扰。同时进程保存着程序每一个时刻运行的状态。进程的两个基本元素是程序代码和与代码关联的数据集。进程执行的任意时刻包含了以下元素: 标识符:与进程相关的唯一标识符,用来区分其他线程 状态:若进程正在执行,则进程处于运行态
阅读全文
摘要:计算机基本构成 计算机主要由处理器,存储器,输入/输出设备组成。 处理器:控制计算机的操作,执行程序数据处理,只有一个处理器时,它通常指中央处理器 (CPU) 内存:存储数据和程序,该类存储器是易失性的,即计算机关机时存储器的内容会丢失,而磁盘存储器在计算机关闭时不会丢失 输入/输出模块:在计算机与
阅读全文