并发编程
Stitch__
菜是原罪
展开
-
同步工具类/CountDownLatch/CyclicBarreir/信号量
同步工具类:通过自身的状态,方法协调线程的控制流。阻塞队列就属于同步工具类,还包括信号量,栅栏以及闭锁。 闭锁式一种同步工具类。可以延迟线程的进度知道其达到终点状态(《java 并发编程实战》中的定义)。闭锁形象的可以理解为一扇门,当满足某个条件的时候门打开。常用于确保某些活动在其他活动都完成之后执行。 CountDownLatch 是一种灵活的闭锁的实现,内部有一个计数器。常用的方法:在构造Co...原创 2019-10-31 12:50:15 · 327 阅读 · 0 评论 -
并发编程1 基本概念
线程安全: 线程和锁 关注的是对象或者静态域中的数据,一个对象是否安全取决于它是否被多个线程访问。在Java中使用同步机制来控制线程对对象的访问。 访问一个变量的代码越少,就越容易保证访问都实现同步 程序的封装状态越好越容易实现线程安全性 并发编程时正确的编程思想:先保证代码的正确运行,再根据需要提高速度 ...原创 2019-09-21 13:56:29 · 183 阅读 · 0 评论 -
并发编程2 对象共享
同步(加锁) 的意义仅仅局限于实现线程间的互斥行为,还包括可见性 为什么会有可见性这一说,这和JVM的内存模型有关: 所有变量都存储在主内存中,每个线程都有自己独立的工作内存,里面保存该线程使用到的变量副本,即主内存中该变量的一份拷贝。 线程对共享变量的所有操作必须在自己的工作内存,线程间变量值的传递需要通过主内存来完成。 在多线程的程序中,每个线程有自己的运行空间,没有同步,各个线程之间的状态...原创 2019-09-23 17:19:52 · 135 阅读 · 0 评论