一. 现在wait方法和notifyAll方法,我们比较纠结。为什么这么说,之前同步里面的锁是我们自定义的,比如this,obj,而现在这个锁是我们自己new的,并且是根据1.5之后的锁对象来完成的。 以前写this和obj时,wait方法和notifyAll方法都是在这个锁上进行的操作,现在锁没了 ...
分类:
编程语言 时间:
2017-12-23 15:45:36
阅读次数:
212
一. 上一节中的代码写的并不是很眼镜,如下图中的属性,应该都是私有的。我们不应该直接访问资源中的属性,是因为它具备了不安全性。 瞎赋值怎么办呢?为了可控,意味着资源里面的属性需要被私有化,并对外提供方法访问。因此上节中的代码要进行改写。 首先对资源描述类进行修改,至于为什么set方法中写有两个形参, ...
分类:
编程语言 时间:
2017-12-17 11:10:43
阅读次数:
198
一. 引言 刚才的输出中,是一片相同的连续输出。现在我们希望,每输入一次,输出端就输出一次。 在输入前要先明确一下,资源里面是否有数据。有数据的话要先输出,我们要在资源中多定义个变量,用来标记里面是否有数据。 也就是说,资源里面的数据被输出了。 上来先默认资源里面没有数据。输入拿到执行权后,先判断资 ...
分类:
编程语言 时间:
2017-12-17 11:07:04
阅读次数:
196
一. 引言 之前讲述了线程的基本使用,卖票和存钱。卖票相当于把资源都释放出来,被别人获取到。而存钱,则是把数据都存进去。 现在,我们将线程进行了改变。以前是多个线程在执行同一个动作,无论是继承还是实现,都是一个run方法。换句话说,就是一个线程任务,多线程在同时执行一个任务。只不过它们是分别存放在了 ...
分类:
编程语言 时间:
2017-12-16 15:56:31
阅读次数:
174
I.线程与线程间通信 一、基本概念以及线程与进程之间的区别联系: 关于进程和线程,首先从定义上理解就有所不同1、进程是什么?是具有一定独立功能的程序、它是系统进行资源分配和调度的一个独立单位,重点在系统调度和单独的单位,也就是说进程是可以独 立运行的一段程序。2、线程又是什么?线程进程的一个实体,是 ...
分类:
编程语言 时间:
2017-11-25 19:18:08
阅读次数:
202
为了更高效的处理一些时间片短,任务量大的任务,我们可能会经常用到多线程。但是多线程的环境下,很容易出现线程并发问题,线程死锁就是很常见的一种并发问题。为了避免此类问题,我们会用到线程间的通信,而等待唤醒机制,就是线程间通信的一种形式。 等待唤醒机制用到的方法主要有: public final voi ...
分类:
编程语言 时间:
2017-11-20 23:19:08
阅读次数:
195
刚刚听说disruptor,大概理一下,只为方便自己理解,文末是一些自己认为比较好的博文,如果有需要的同学可以参考。 本文目标:快速了解Disruptor是什么,主要概念,怎么用 1、Disruptor简介 Disruptor是什么?有什么特点/优点? --Disruptor是一个用于在线程间通信的 ...
分类:
其他好文 时间:
2017-11-16 18:32:35
阅读次数:
104
1、JDK5以后的针对线程的锁定操作和释放操作 2、死锁问题的描述和代码体现 3、生产者和消费者多线程体现(线程间通信问题) 4、线程组 5、线程池 6、多线程实现的第三种方案 7、匿名内部类方式实现多线程 8、定时器 9、多线程的面试题 ...
分类:
编程语言 时间:
2017-10-25 00:38:58
阅读次数:
213
简介: 等待通知机制的实现 当interrupt()方法遇到wait()方法 只通知一个线程 唤醒所有线程 方法wait(long)的使用 通知过早 通知过早,wait线程还没有进入wait状态,其它线程已经进行了notify,不会产生影响。 生产者与消费者模式 假死 一个生产者多个消费者——操作栈 ...
分类:
编程语言 时间:
2017-10-24 19:35:28
阅读次数:
244
1 线程间通信 多个线程在处理同一个资源,但是任务却不同。 示例: Resource.java Resource.java Input.java Input.java Output.java Output.java ResourceDemo.java ResourceDemo.java 解决思路:就 ...
分类:
编程语言 时间:
2017-10-06 23:11:04
阅读次数:
325