最近在复习Java基础,看到多线程这块顺便写写多线程的协调控制程序。
需求:假设系统中有两个线程分别代表取款者和存款者,现在系统的要求是存款者和取款者不断的重复存、取款操作,
并且要求每当有存款者将钱存入指定账户中时,取款者就立即取出这笔钱,即不允许存款者连续两次存钱,也不允许
取款者两次取钱。
下面代码实现:
1.首先是账户Account类;
package com....
分类:
编程语言 时间:
2014-09-04 23:45:41
阅读次数:
492
什么是死锁
所谓死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。
死锁产生的原因及条件
那么为什么会产生死锁呢?
1.因为系统资源不足。
2.进程运行推进的顺序不合适。
3.资源分配不当。
学过操作系统的朋友都知道:产生死锁的条件有四个:
1.互斥条件:所谓互斥就是进程在...
分类:
编程语言 时间:
2014-09-04 20:58:00
阅读次数:
333
import java.io.File;import java.io.FileInputStream;import java.io.InputStream;import java.io.RandomAccessFile;import java.net.HttpURLConnection;import...
分类:
编程语言 时间:
2014-09-04 00:02:37
阅读次数:
321
import java.io.InputStream;import java.io.RandomAccessFile;import java.net.HttpURLConnection;import java.net.URL;public class Demo { private static...
分类:
编程语言 时间:
2014-09-03 23:53:37
阅读次数:
253
多线程的同步依靠的是对象锁机制,synchronized关键字的背后就是利用了封锁来实现对共享资源的互斥访问。下面以一个简单的实例来进行对比分析。实例要完成的工作非常简单,就是创建10个线程,每个线程都打印从0到99这100个数字,我们希望线程之间不会出现交叉乱序打印,而是顺序地打印。先来看第一段代...
分类:
编程语言 时间:
2014-09-01 17:35:53
阅读次数:
305
register_shutdown_function—Register a function for execution on shutdownvoidregister_shutdown_function(callable$callback[,mixed$parameter[,mixed$...]]...
分类:
Web程序 时间:
2014-09-01 15:32:33
阅读次数:
218
关闭ExecutorService
ExecutorService提供了两种关闭方法,使用Shutdown正常关闭,以及使用ShutdownNow强行关闭。在进行强行关闭时,shutdownNow首先关闭当前正在执行的任务。然后返回所有尚未启动的任务清单 。
返回未启动任务清单这句没明白返回的方式,于是去查看了一下源码
/**
* Attempts to stop all ...
分类:
编程语言 时间:
2014-09-01 01:41:33
阅读次数:
335
在项目开发中, 或许会碰到JAVA的多线程处理, 为保证业务数据的正常, 必须加上锁机制, 常用的处理方法一般是加上synchronized关键字, 目前JDK版本对synchronized已经做了很好的优化, 我们不用再考虑其性能, 但在实际使用中, 往往由于处理不当, 导致系统性能的严重下降, ...
分类:
编程语言 时间:
2014-08-29 12:34:47
阅读次数:
263
从java5开始,java提供了Callable接口,Callable接口提供了一个call方法可以作为线程的执行体,但call方法比run方法功能更加强大。主要体现在:
1.call方法可以有返回值;
2.call方法可以声明抛出异常。
因此我们完全可以提供一个Callable对象作为Thread的target,而该线程的线程执行体就是该Callable对象的call方法,问题...
分类:
其他好文 时间:
2014-08-28 18:12:45
阅读次数:
498