摘要: 根据修改的数据类型,可以将JUC包中的原子操作类可以分为4类。 1. 基本类型: AtomicInteger, AtomicLong, AtomicBoolean ;2. 数组类型: AtomicIntegerArray, AtomicLongArray, AtomicReferenceArray 阅读全文
posted @ 2018-01-02 16:04 迷走神经 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 1. 生产/消费者模型 生产/消费者问题是个非常典型的多线程问题,涉及到的对象包括“生产者”、“消费者”、“仓库”和“产品”。他们之间的关系如下:(01) 生产者仅仅在仓储未满时候生产,仓满则停止生产。(02) 消费者仅仅在仓储有产品时候才能消费,仓空则等待。(03) 当消费者发现仓储没产品可消费时 阅读全文
posted @ 2018-01-02 15:24 迷走神经 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 1. 线程优先级的介绍 java 中的线程优先级的范围是1~10,默认的优先级是5。“高优先级线程”会优先于“低优先级线程”执行。 java 中有两种线程:用户线程和守护线程。可以通过isDaemon()方法来区别它们:如果返回false,则说明该线程是“用户线程”;否则就是“守护线程”。用户线程一 阅读全文
posted @ 2018-01-02 14:37 迷走神经 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 1. interrupt()说明 在介绍终止线程的方式之前,有必要先对interrupt()进行了解。关于interrupt(),java的djk文档描述如下:http://docs.oracle.com/javase/7/docs/api/ 大致意思是: 2. 终止线程的方式 Thread中的st 阅读全文
posted @ 2018-01-02 14:27 迷走神经 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 1. join()介绍 join() 定义在Thread.java中。join() 的作用:让“主线程”等待“子线程”结束之后才能继续运行。这句话可能有点晦涩,我们还是通过例子去理解: 说明:上面的有两个类Father(主线程类)和Son(子线程类)。因为Son是在Father中创建并启动的,所以, 阅读全文
posted @ 2018-01-02 11:41 迷走神经 阅读(1434) 评论(0) 推荐(0) 编辑
摘要: 1. sleep()介绍 sleep() 定义在Thread.java中。sleep() 的作用是让当前线程休眠,即当前线程会从“运行状态”进入到“休眠(阻塞)状态”。sleep()会指定休眠时间,线程休眠的时间会大于/等于该休眠时间;在线程重新被唤醒时,它会由“阻塞状态”变成“就绪状态”,从而等待 阅读全文
posted @ 2018-01-02 11:01 迷走神经 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 1. yield()介绍 yield()的作用是让步。它能让当前线程由“运行状态”进入到“就绪状态”,从而让其它具有相同优先级的等待线程获取执行权;但是,并不能保证在当前线程调用yield()之后,其它具有相同优先级的线程就一定能获得执行权;也有可能是当前线程又进入到“运行状态”继续运行! 2. y 阅读全文
posted @ 2018-01-02 10:51 迷走神经 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 1.wait(), notify(), notifyAll()等方法介绍 在Object.java中,定义了wait(), notify()和notifyAll()等接口。wait()的作用是让当前线程进入等待状态,同时,wait()也会让当前线程释放它所持有的锁。而notify()和notifyA 阅读全文
posted @ 2018-01-02 10:27 迷走神经 阅读(308) 评论(0) 推荐(0) 编辑