
并行开发
何时成为大牛
屌丝程序员一枚
展开
-
在Java中如何避免死锁?
你可以通过打破互相等待的局面来避免死锁。为了达到这一点,你需要在代码中合理地安排获取和释放锁的顺序。如果获得锁的顺序是固定的,并且获得的顺序和释放的顺序刚好相反的话,就不会产生出现死锁的条件了。转载 2016-02-16 14:22:29 · 7525 阅读 · 0 评论 -
Java并发编程:线程池的使用
在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务? 在Java中可以通过线程池来达到这样的转载 2016-04-13 11:03:06 · 258 阅读 · 0 评论 -
Java线程(十一):Fork/Join-Java并行计算框架
版权声明:本文为博主原创文章,转载请注明出处http://blog.youkuaiyun.com/ghsau。并行计算在处处都有大数据的今天已经不是一个新鲜的词汇了,现在已经有单机多核甚至多机集群并行计算,注意,这里说的是并行,而不是并发。严格的将,并行是指系统内有多个任务同时执行,而并发是指系统内有多个任务同时存在,不同的任务按时间分片的方式切换执行,由于切换的时间很短,给人的感觉好像是转载 2016-02-18 14:04:03 · 336 阅读 · 0 评论 -
Java线程(九):Condition-线程通信更高效的方式
版权声明:本文为博主原创文章,转载请注明出处http://blog.youkuaiyun.com/ghsau。 接近一周没更新《Java线程》专栏了,主要是这周工作上比较忙,生活上也比较忙,呵呵,进入正题,上一篇讲述了并发包下的Lock,Lock可以更好的解决线程同步问题,使之更面向对象,并且ReadWriteLock在处理同步时更强大,那么同样,线程间仅仅互斥是不够的,还需要通转载 2016-02-18 13:50:34 · 304 阅读 · 0 评论 -
Java线程(八):锁对象Lock-同步问题更完美的处理方式
版权声明:本文为博主原创文章,转载请注明出处http://blog.youkuaiyun.com/ghsau。 Lock是java.util.concurrent.locks包下的接口,Lock 实现提供了比使用synchronized 方法和语句可获得的更广泛的锁定操作,它能以更优雅的方式处理线程同步问题,我们拿Java线程(二)中的一个例子简单的实现一下和sychronize转载 2016-02-18 13:45:46 · 502 阅读 · 0 评论 -
Java线程(七):Callable和Future
版权声明:本文为博主原创文章,转载请注明出处http://blog.youkuaiyun.com/ghsau。 接着上一篇继续并发包的学习,本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果。 Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而C转载 2016-02-18 13:30:18 · 285 阅读 · 0 评论 -
Java线程(六):线程池
版权声明:本文为博主原创文章,转载请注明出处http://blog.youkuaiyun.com/ghsau。 自JDK5之后,Java推出了一个并发包,java.util.concurrent,在Java开发中,我们接触到了好多池的技术,String类的对象池、Integer的共享池、连接数据库的连接池、Struts1.3的对象池等等,池的最终目的都是节约资源,以更小的开销做更转载 2016-02-18 13:23:02 · 240 阅读 · 0 评论 -
Java线程(五):Timer和TimerTask
Timer和TimerTask可以做为实现线程的第三种方式,前两中方式分别是继承自Thread类和实现Runnable接口。 Timer是一种线程设施,用于安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行,可以看成一个定时器,可以调度TimerTask。TimerTask是一个抽象类,实现了Runnable接口,所以具备了多线程的能力。转载 2016-02-18 13:15:56 · 286 阅读 · 0 评论 -
Java线程(四):线程中断、线程让步、线程睡眠、线程合并
版权声明:本文为博主原创文章,转载请注明出处http://blog.youkuaiyun.com/ghsau。目录(?)[+] 本文来自:高爽|Coder,原文地址:http://blog.youkuaiyun.com/ghsau/article/details/17560467,转载请注明。 最近在Review线程专栏,修改了诸多之前描述不够严谨的地方,凡转载 2016-02-18 13:14:26 · 334 阅读 · 0 评论 -
Java线程(三):线程协作-生产者/消费者问题
版权声明:本文为博主原创文章,转载请注明出处http://blog.youkuaiyun.com/ghsau。目录(?)[+] 上一篇讲述了线程的互斥(同步),但是在很多情况下,仅仅同步是不够的,还需要线程与线程协作(通信),生产者/消费者问题是一个经典的线程同步以及通信的案例。该问题描述了两个共享固定大小缓冲区的线程,即所谓的“生产者”和“消费者”在实际转载 2016-02-18 11:12:37 · 236 阅读 · 0 评论 -
Java线程(二):线程同步synchronized和volatile
版权声明:本文为博主原创文章,转载请注明出处http://blog.youkuaiyun.com/ghsau。 上篇通过一个简单的例子说明了线程安全与不安全,在例子中不安全的情况下输出的结果恰好是逐个递增的(其实是巧合,多运行几次,会产生不同的输出结果),为什么会产生这样的结果呢,因为建立的Count对象是线程共享的,一个线程改变了其成员变量num值,下一个线程正巧读到了修改后的转载 2016-02-18 10:59:36 · 231 阅读 · 0 评论 -
Java线程(一):线程安全与不安全
版权声明:本文为博主原创文章,转载请注明出处http://blog.youkuaiyun.com/ghsau。 作为一个Java web开发人员,很少也不需要去处理线程,因为服务器已经帮我们处理好了。记得大一刚学Java的时候,老师带着我们做了一个局域网聊天室,用到了AWT、Socket、多线程、I/O,编写的客户端和服务器,当时做出来很兴奋,回学校给同学们演示,感觉自己好NB,转载 2016-02-18 10:51:03 · 308 阅读 · 0 评论