![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java并发编程
vZou
编程是一种追求,每个抽象都是思想的提炼,每个方法都是智慧的结晶,而我们每一个程序猿都是代码的生产者
展开
-
Executor任务执行框架
前言官方文档中Executor是一个将任务Runnable的提交与执行进行分离的对象。Executor接口中唯一入口是execute方法,类似于Runnable的run方法。在实际的应用系统中,Runnable作为Thread的传入参数(或者运行对象),由Thread的start方法进行启动。程序在线程中进行调用的入口是Runnable的run,那么为什么又需要一个Executor来执行Run原创 2017-02-24 10:56:43 · 717 阅读 · 0 评论 -
线程死锁
线程死锁安全性和活跃度通常是相互制约的,虽然可以通过开辟一定量的线程来提高活跃度,但是用来保证多线程安全的锁也可能引起锁顺序死锁问题(lock-ordering deadlock)。类似,我们使用线程池和信号量来约束资源的使用,但是也可能存在资源死锁(resource deadlock)。Java程序不能从死锁中恢复,所以能够避免死锁对于程序的设计十分重要。死锁哲学家就餐是多线程中很经典的问题,它原创 2017-05-18 19:38:27 · 300 阅读 · 0 评论 -
ThreadPoolExecutor
总结:ThreadPoolExecutor是一个基于池概念的线程执行框架,在并发编程中,合理的配置构造函数中的参数,可以提高应用程序计算能力。原创 2017-05-09 10:30:00 · 346 阅读 · 0 评论 -
任务执行、取消和关闭
任务TaskTask就是抽象、离散的工作单元unit。把一个应用程序的工作work分离到任务中,可简化程序的管理;这种分离还在不同事务间划分了 自然的分界线,可以方便程序出现错误时进行恢复;同时,这种分离还可以为并行工作提供一个自然的结构,有利于提高程序的并发性。任务执行围绕执行任务来管理应用程序时,首先要指明一个清晰的任务边界TaskBoundaries;其次,应用程序应该在负荷过载时平缓地劣原创 2017-05-09 16:37:46 · 4382 阅读 · 0 评论 -
sychronizer同步器
Synchronizer同步器在java并发编程中,多线程编程中无可避免的是线程流的控制问题以及共享数据的同步问题。java.util.concurrent包下的许多工具类都是为更好、更简单的方式为程序提供线程流控制和共享数据同步管理。Synchronizer是一个对象,它根据自身的状态调节线程的控制流。在java.util.concurrent包中可以充当Synchronizer的类包括:阻塞队列原创 2017-04-19 19:13:28 · 973 阅读 · 0 评论 -
Timer定时器
Timerjava定时器是一个从当前时间往后延期某段时间长度在执行的一个类,作用类似于Thread.sleep方法,或者一种线程设施,用于安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。在实际的项目开发过程中,两个系统进行集成时,一个系统需要获取另一个系统的业务数据,此时系统需要周期性的调用集成系统的数据传送接口,而实际的被集成系统在线上实时的收集业务数据,那么使用Tim原创 2017-02-22 11:17:25 · 567 阅读 · 0 评论 -
java生产者和消费者问题
有很长一段时间想坚持写博客,但总是感觉自己的技术水平有限,所以迟迟没动手。今天我在写一个简单的生产者和消费者问题,在多线程的世界里绕了很久很久,但在回顾操作系统的知识时,其中的进程协同和互斥问题给我带来了很大的启发,尤其是其中的信号量Semaphore的通信方式,我很喜欢也很容易理解。在这个过程中,我对单向链表进行堆栈的模拟纠结了挺久,不是不会,而是上班中断断续续的思维以及生活和毕业后的种种感情掠夺原创 2016-11-28 19:31:36 · 206 阅读 · 0 评论 -
哲学家就餐问题
Title 哲学家就餐问题是在1965年由Dijkstra提出并解决的一个问题,后来成为同步问题的一个经典问题。Disciber 有五位哲学家围坐在一张桌子前, 他们面前都放了一碗面,彼此间放了一把叉子。因为面非常的滑,以至于使用一个叉子吃不了,所以每位哲学家需要拿起放在他左右两边的叉子吃面。同时,每位哲学家具有两种状态:进餐、思考问题。每当一位哲学家感到饥饿时,他会试图去获得位于他左右两边的那两把原创 2016-11-29 14:02:24 · 823 阅读 · 0 评论 -
多线程经典问题之读者、写者问题
多线程通信之读者、写者问题读、写问题是另一个非常出名的同步问题,常常用来模拟数据库的数据查询和数据修改两种情况问题。也即, 一个数据库允许有多个访问者同时对其进行数据访问,但是对于数据的修改只能有一个。那么如何来控制这种访问多个,而修改只能一个的数据操作方式?这也涉及到线程间通信和同步问题。数据库中存在的情况为:读者、读者可以同时存在;读者、写者不能同时存在,如果读者在前,则写者等待;否则所有原创 2016-12-06 09:09:40 · 1645 阅读 · 0 评论 -
Hibernate实体命名Bug
Hiberante和java Bean两者之间是由hbm.xml和get、set进行关联。但java Bean中的property属性的名字却有一个需要注意的小点,那就是类似于sName这种已单个字符小写开头,后接首字母大写的驼峰命名。在Hibernate中的BasicPropertyAccessor类中的getterMethod方法里的testStdMethod、testOldMethod两者和p原创 2017-06-29 08:43:37 · 399 阅读 · 0 评论