
并发
wangxy799
这个作者很懒,什么都没留下…
展开
-
java多线程-join方法详解(附面试题)
本文对java Thread中join()方法进行介绍,join()的作用是让“主线程”等待“子线程”结束之后才能继续运行,大家参考使用吧原创 2016-03-30 11:22:00 · 1400 阅读 · 0 评论 -
Java Future和Callable介绍
在Java中,如果需要设定代码执行的最长时间,即超时,可以用Java线程池ExecutorService类配合Future接口来实现。 Future接口是Java标准API的一部分,在java.util.concurrent包中。Future接口是Java线程Future模式的实现,可以来进行异步计算。转载自:http://blog.youkuaiyun.com/yangyan19870319/arti转载 2016-05-06 10:26:48 · 617 阅读 · 0 评论 -
Java中并发编程的锁(不是synchronized)
锁像synchronized同步块一样,是一种线程同步机制,但比Java中的synchronized同步块更复杂。因为锁(以及其它更高级的线程同步机制)是由synchronized同步块的方式实现的,所以我们还不能完全摆脱synchronized关键字(译者注:这说的是Java 5之前的情况)。转载 2016-03-28 16:49:38 · 1154 阅读 · 0 评论 -
一个简单的守护线程示例
线程有两类:用户线程和守护线程。 用户线程是那些完成有用工作的线程。 守护线程 是那些仅提供辅助功能的线程。Thread 类提供了 setDaemon() 函数。Java 程序将运行到所有用户线程终止,然后它将破坏所有的守护线程。原创 2016-03-28 16:28:33 · 1611 阅读 · 2 评论 -
ExecutorService实现线程池
ExecutorService是java自带线程池线程池的作用:线程池作用就是限制系统中执行线程的数量。 根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。当一个新任务需要运行时,如原创 2016-03-25 10:42:38 · 3096 阅读 · 0 评论 -
单例模式详解
单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。每台计算机可以有若干个打印机,但只能有一个Printer Spooler,以避免两个打印作业同时输出到打印机中。每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避免一个通信端口同时被两个原创 2016-03-31 15:44:35 · 330 阅读 · 0 评论 -
java多线程-需要知道的几个概念(待续..)
参考资料: 多线程的可见性java内存模型Java memory model 描述了java程序中各种变量(线程共享变量)的访问规则, 以及在JVM中将变量存储到内存,以及从内存中读取变量的底层细节共享变量如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量。可见性一个线程对共享变量值的修改,能够及时的被其他线程看到。所有的变量都存储在主内存中 每个线程都有自己原创 2016-04-01 16:09:10 · 384 阅读 · 0 评论 -
java多线程-synchronized
synchronized是Java中使用的最基本的一个同步方法,使用 synchronized关键字来控制并发访问方法。只有一个执行线程将会访问一个对象中被synchronized关键字声明的方法。如果另一个线程试图访问同一个对象中任何被synchronized关键字声明的方法,它将被暂停,直到第一个线程结束方法的执行。原创 2016-03-31 17:37:54 · 321 阅读 · 0 评论 -
java多线程-BlockingQueue(阻塞队列)
阻塞队列与普通队列的区别在于,当队列是空的时,从队列中获取元素的操作将会被阻塞,或者当队列是满时,往队列里添加元素的操作会被阻塞。试图从空的阻塞队列中获取元素的线程将会被阻塞,直到其他的线程往空的队列插入新的元素。同样,试图往已满的阻塞队列中添加新元素的线程同样也会被阻塞,直到其他的线程使队列重新变得空闲起来,如从队列中移除一个或者多个元素,或者完全清空队列。原创 2016-03-30 17:51:19 · 910 阅读 · 0 评论 -
java多线程-使用ReadWriteLock同步数据访问
锁所提供的最重要的改进之一就是ReadWriteLock接口和唯一 一个实现它的ReentrantReadWriteLock类。这个类提供两把锁,一把用于读操作和一把用于写操作。同时可以有多个线程执行读操作,但只有一个线程可以执行写操作。当一个线程正在执行一个写操作,不可能有任何线程执行读操作。示例:import java.util.concurrent.ExecutorService;impo原创 2016-03-30 15:52:14 · 380 阅读 · 0 评论 -
java多线程-Lock接口(将多线程共享资源锁定)
Java提供另外的机制用来同步代码块。它比synchronized关键字更加强大、灵活。Lockers在多线程编程里面一个重要的概念是锁定,如果一个资源是多个线程共享的,为了保证数据的完整性,在进行事务性操作时需要将共享资源锁定,这样可以保证在做事务性操作时只有一个线程能对资源进行操作。它是基于Lock接口和实现它的类(如ReentrantLock)。 参考:http://www.jb51.n原创 2016-03-30 15:26:08 · 1673 阅读 · 0 评论 -
Java 程序中的多线程
为什么要使用多线程? 下面的这个简单的 Java 程序完成四项不相关的任务。这样的程序有单个控制线程,控制在这四个任务之间线性地移动。此外,因为所需的资源 ― 打印机、磁盘、数据库和显示屏 – 由于硬件和软件的限制都有内在的潜伏时间,所以每项任务都包含明显的等待时间。因此,程序在访问数据库之前必须等待打印机完成打印文件的任务,等等。如果您正在等待程序的完成,则这是对计算资源和您的时间的一种拙劣转载 2016-03-25 10:06:45 · 429 阅读 · 0 评论