SF
并发编程
并发编程
注册登录
关注博客
注册登录
主页
关于
RSS
一起学并发编程 - 利用观察者模式监听线程状态
峰峰峰峰峰
2017-12-15
阅读 5 分钟
7.4k
观察者模式: 是一种使用率极高的模式,用于建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应作出反应。在观察者模式中,发生改变的对象称为观察目标,而被通知的对象称为观察者,一个观察目标可以对应多个观察者,而且这些观察者之间可以没有任何相互联系,可以根据需要增加和...
一起学并发编程 - Volatile关键字详解
峰峰峰峰峰
2017-10-18
阅读 3 分钟
2.9k
volatile是用来标记一个JAVA变量存储在主内存(main memory)中,多线程读写volatile变量会先从高速缓存中读取,但是写入的时候会立即通过内存总线刷到主存,同时内存总线中会对这个变量进行监听,当发现数据变动时,会主动将该变量的CPU Cache置为失效。确切的说:每次写操作volatile变量时,将直接将主内存(main memory)...
一起学并发编程 - 简易线程池实现
峰峰峰峰峰
2017-10-13
阅读 10 分钟
4.1k
开发中经常会遇到各种池(如:连接池,线程池),它们的作用就是为了提高性能及减少开销,在JDK1.5以后的java.util.concurrent包中内置了很多不同使用场景的线程池,为了更好的理解它们,自己手写一个线程池,加深印象。
一起学并发编程 - 处理异常中止的线程
峰峰峰峰峰
2017-10-11
阅读 2 分钟
3.1k
在单线程的开发过程中,通常采用try-catch的方式进行异常捕获,但是这种方式在多线程环境中会显得无能为力,而且还有可能导致一些问题的出现,比如发生异常的时候不能及时回收系统资源,或者无法及时关闭当前的连接...
一起学并发编程 - 钩子函数(shutdownHook)
峰峰峰峰峰
2017-10-10
阅读 3 分钟
15.2k
在Jboss,Jetty等容器中都可以看到shutdownHook的身影,例如在服务优雅下线一文中的spring-boot-starter-actuator就会触发shutdownHook...
一起学并发编程 - sleep与wait的差异
峰峰峰峰峰
2017-10-10
阅读 3 分钟
4.4k
简单来说,wait()是一个用于线程同步的实例方法。因为定义在java.lang.Object上,所以它可以在任何对象中调用, 但前提条件是在同步代码块中调用,同时释放对象上的锁,以便另一个线程可以跳入并获取锁。而Thread.sleep()是可以从任何上下文调用的静态方法。Thread.sleep()暂停当前线程,不释放任何锁。
一起学并发编程 - 等待与通知
峰峰峰峰峰
2017-09-29
阅读 5 分钟
1.8k
wait,notify 和 notifyAll,这些在多线程中被经常用到的保留关键字,在实际开发的时候很多时候却并没有被大家重视,而本文则是对这些关键字的使用进行描述。
一起学并发编程 - 死锁跟踪分析
峰峰峰峰峰
2017-09-28
阅读 3 分钟
2.3k
上一章介绍过synchronized关键字,使用它可以给程序互斥部分加上一把锁从而达到同步的效果,但错误的用法会导致多个线程同时被阻塞.... <!-- more --> 死锁 死锁: 多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。 JAVA 中死锁产生的四个必要...
一起学并发编程 - synchronized详解
峰峰峰峰峰
2017-09-28
阅读 5 分钟
3.1k
synchronized是JAVA语言的一个关键字,使用 synchronized 来修饰方法或代码块的时候,能够保证多个线程中最多只有一个线程执行该段代码 ...
一起学并发编程 - 优雅关闭
峰峰峰峰峰
2017-09-28
阅读 3 分钟
2.5k
Java中原来在Thread中提供了stop()方法来终止线程,但这个方法是不安全的,所以一般不建议使用。文本将介绍两种可以优雅的终止线程的方式...
一起学并发编程 - 线程Join分析
峰峰峰峰峰
2017-09-28
阅读 3 分钟
2.7k
由于前段时间比较忙,线程这快学习停滞了,只能利用周日的时间来写写博客了,多线程Join方法的作用就是把指定的线程加入到当前线程,让主线程等待子线程结束之后才能继续运行,从而完成同步操作
一起学并发编程 - 守护线程
峰峰峰峰峰
2017-09-21
阅读 5 分钟
2.7k
今天研究了下Java线程基础知识,发现以前太多知识知识略略带过了,比较说Java的线程机制,在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程),以及构造器中的stackSize.....