摘要: 线程安全问题是一个老生常谈的问题,那么多线程环境下究竟有那些问题呢?这么说吧,问题的形式多种多样的,归根结底的说是共享资源问题,无非可见性与有序性问题。 1. 可见性 可见性是对于内存中的共享资源来说。线程作为单一的控制流,在运行的程序内线程必须拥有一些资源作为开销。例如线程的堆栈和私有的程序计数器 阅读全文
posted @ 2021-03-10 21:27 霍丙南 阅读(194) 评论(0) 推荐(0)
摘要: FutureTask浅析 FutureTask是与Java多线程编程关联密切的一个概念。面试中也有关于FutureTask的问题——Java创建线程的几种方式: 编写类继承Thread。 编写类继承Runnable,然后将该类的作为参数传递给Thread的构造函数。 使用FutureTask。 那么 阅读全文
posted @ 2021-03-10 20:43 霍丙南 阅读(362) 评论(0) 推荐(0)
摘要: 生产者消费者问题 背景 在并发编程中,生产者消费者问题(producer/consumer)是一个经典的老生常谈的问题,有时也称为有界缓冲区问题。 问题的基本背景假设是:我们有一个固定大小的缓冲区,这个缓冲区分别有两种工作性质不同的线程去操作。其中一种线程负责向缓冲区中写入数据,我们称之为生产者线程 阅读全文
posted @ 2021-03-10 20:07 霍丙南 阅读(186) 评论(0) 推荐(0)