——- android培训、java培训、期待与您交流! ———-线程间通信线程间的通信:
其实就是多个线程操作同一个资源,但是操作的动作不同。一、我的示例这是我写的关于线程间通信的示例。本示例需要定义三个类:
1 资源类Resource
2 输入类Input
3 输出类Output步骤:
1 先写出基本代码
2 找安全问题并修改1 初级代码//本类定义的资源是,人的数据
class R...
分类:
编程语言 时间:
2015-03-30 09:30:12
阅读次数:
227
接触Java多线程这么久了,synchronized静态代码块以及其中的wait和notify方法一直没搞懂,网上关于此,不是旁敲侧击,就是晦涩难懂(我理解能力有限),实在无语了。今天把Java的源码导入到了eclipse,从源码中看到了我想要的答案。即本文专注于讲解透彻地讲解synchronized代码块,wait以及notify的使用方法,绝对一针见血,绝不旁敲侧击,没意思。注:本文不会讲什么是...
分类:
其他好文 时间:
2015-03-29 13:42:13
阅读次数:
142
1、线程的状态
1.1创建 线程 的两种方式,接口和线程类。利用接口的好处:更好的体现面向对象的思想,可以避免由于Java的单继承特性而带来的局限;
增强程序的健壮性,代码能够被多个线程共享,代码与数据是独立的;(同步问题)适合多个相同程序代码的线程区处理同一资源的情况。
1.2线程就绪等待调度运行start()方法。
1.3线程的中断
这里需要注意的是,...
分类:
编程语言 时间:
2015-03-29 10:53:28
阅读次数:
180
——- android培训、java培训、期待与您交流! ———-死锁一、基本概念死锁是什么呢?
两个线程分别持有一个资源,
并同时请求得到对方的资源。
在这种情况下产生的不正常情况就叫做死锁。死锁在什么情况下会发生呢?
死锁在同步嵌套同步的情况下会发生。
至少有2把锁,才会产生死锁。二、死锁实例1首先,以前面售票的例子展示一下死锁。class Ticket implements Runn...
分类:
编程语言 时间:
2015-03-28 17:24:31
阅读次数:
165
上一篇讲述了并发包下的Lock,Lock可以更好的解决线程同步问题,使之更面向对象,并且ReadWriteLock在处理同步时更强大,那么同样,线程间仅仅互斥是不够的,还需要通信,本篇的内容是基于上篇之上,使用Lock如何处理线程通信。 那么引入本篇的主角,Condition,Condition.....
分类:
编程语言 时间:
2015-03-28 11:29:21
阅读次数:
155
前言 在Java并发包中有这样一个包,java.util.concurrent.atomic,该包是对Java部分数据类型的原子封装,在原有数据类型的基础上,提供了原子性的操作方法,保证了线程安全。下面以AtomicInteger为例,来看一下是如何实现的。public final int in.....
分类:
编程语言 时间:
2015-03-28 11:28:14
阅读次数:
181
Lock是java.util.concurrent.locks包下的接口,Lock实现提供了比使用synchronized方法和语句可获得的更广泛的锁定操作,它能以更优雅的方式处理线程同步问题,我们拿Java线程(二)中的一个例子简单的实现一下和sychronized一样的效果,代码如下: 1 pu...
分类:
编程语言 时间:
2015-03-28 11:17:33
阅读次数:
133
首先是建立一个类继承Thread类packagecom.zzq.socket;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.OutputStream;importjava.io.PrintWriter;importjava.net.Socket;publicclassServerTh..
分类:
编程语言 时间:
2015-03-28 06:31:19
阅读次数:
179
接着上一篇继续并发包的学习,本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果。 Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被线程执...
分类:
编程语言 时间:
2015-03-27 23:52:10
阅读次数:
175
自JDK5之后,Java推出了一个并发包,java.util.concurrent,在Java开发中,我们接触到了好多池的技术,String类的对象池、Integer的共享池、连接数据库的连接池、Struts1.3的对象池等等,池的最终目的都是节约资源,以更小的开销做更多的事情,从而提高性能。 .....
分类:
编程语言 时间:
2015-03-27 23:48:55
阅读次数:
355