多线程
qunqun422
这个作者很懒,什么都没留下…
展开
-
生产者和消费者问题
``` package 生产者消费者; public class ProducerConsumerTest { public static void main(String[] args) { PublicResource resource = new PublicResource(); new Thread(new ProducerThread(resource)).s原创 2016-11-09 11:31:44 · 245 阅读 · 0 评论 -
多线程环境中安全使用集合API
在集合API中,最初设计的Vector和Hashtable是多线程安全的。例如:对于Vector来说,用来添加和删除元素的方法是同步的。如果只有一个线程与Vector的实例交互,那么,要求获取和释放对象锁便是一种浪费,另外在不必要的时候如果滥用同步化,也有可能会带来死锁。因此,对于更改集合内容的方法,没有一个是同步化的。集合本质上是非多线程安全的,当多个线程与集合交互时,为了使它多线程安全,必须采原创 2016-11-09 13:49:47 · 204 阅读 · 0 评论 -
守护线程与阻塞线程的四种情况
Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 用户线程即运行在前台的线程,而守护线程是运行在后台的线程。 守护线程作用是为其他前台线程的运行提供便利服务,而且仅在普通、非守护线程仍然运行时才需要,比如垃圾回收线程就是一个守护线程。当VM检测仅剩一个守护线程,而用户线程都已经退出运行时,VM就会退出,因为如果没有了守护者,也就没有继续运行原创 2016-11-09 14:55:29 · 222 阅读 · 0 评论 -
Java核心技术点之多线程
为什么使用多线程 并发与并行 我们知道,在单核机器上,“多进程”并不是真正的多个进程在同时执行,而是通过CPU时间分片,操作系统快速在进程间切换而模拟出来的多进程。我们通常把这种情况成为并发,也就是多个进程的运行行为是“一并发生”的,但不是同时执行的,因为CPU核数的限制(PC和通用寄存器只有一套,严格来说在同一时刻只能存在一个进程的上下文)。 现在,我们使用的计算机基本上都搭载了多核CPU转载 2016-11-01 11:42:29 · 350 阅读 · 0 评论