2012年9月26日
摘要: test 阅读全文
posted @ 2012-09-26 15:18 小段段 阅读(145) 评论(0) 推荐(0) 编辑
2012年5月7日
摘要: 与其它计算机通信 对于当代的计算机来说,有一项不可或缺的功能:计算机网络。通过网络,计算机可以喝其他计算机通信,从而扩大计算能力。当今,网络已经十分普遍,成为了计算机系统的主干。一台新型计算机如果没有网络接口是相当可笑的。联网的计算机具有以下主要优点:通信:在计算机之间高速交换信息资源共享:有些I/O设备可以由网络上的计算机共享,不必每台计算机都配备。远距离访问:用户可以不再计算机的身旁,而是在很远的地方使用计算机。 随着计算机技术的进步,网络变得越来越便宜,速度越来越快。网络规模的飞速扩大,伴随着宽带的急剧增长,使得网络技术曾为最近二十多年来信息革命的中心。近十年来,新的联网创新变革了计.. 阅读全文
posted @ 2012-05-07 22:40 小段段 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 一 冒泡排序 冒泡排序算法需要白努力几次数组,在每次遍历中,比较连续相邻的元素,如果某一对元素是降序的,就对换它们的位置。否则保持不变。由于较小的值像“气泡”一样浮向顶部,而较大的值沉向底部,所以称这种技术为冒泡排序法。 或下沉排序法。 使用冒泡排序发,第一次遍历之后 最大的元素排在最后的位置,第二次遍历 第二大的元素排倒数第二的位置,第三次,倒数第三大的值... 阅读全文
posted @ 2012-05-07 14:23 小段段 阅读(301) 评论(0) 推荐(0) 编辑
2012年5月6日
摘要: 在巴黎,我对当地人讲法语,他们只是瞪着眼看我,我从来没能让这些白痴理解他们自己的语言 ——马克吐温。一、程序的概念 一个典型的应用程序,如字处理程序或大型数据库,可以由数百万行代码组成,并依靠软件来实现异常复杂的功能。众所周知,计算机只能执行极为简单的低级指令,从复杂的应用程序到简单的指令需要经过几个软件层次,才能将复杂的高层操作逐步解释或翻译成简单的计算机指令。 下图给出了浙西软件的层次结构,外层是应用软件,中心是硬件,系统软件在中间层。系统软件有很多种,但是对于现代计算机系统来说必须的有两种:1,操作系统,2编译器。 操作系统是用户程序和硬件之间的接口,为用户提供各种服务和监控功能。操作. 阅读全文
posted @ 2012-05-06 16:20 小段段 阅读(418) 评论(0) 推荐(0) 编辑
2012年5月5日
摘要: 信号量可以用来限制访问公共资源。在访问公共资源之前,线程必须从信号量获取许可。在访问资源之后,这个线程必须将许可返回给信号量, 为了创建信号量,必须使用可选的公平策略来确定许可的数量。任务通过调用信号量acquire() 方法来获得许可,可通过调用信号量的release()方法来释放许可。一旦获得许可,信号量中可用许可的数量减一。一旦许可呗释放掉,信号量的可用许可的总数加1。 使用只有一个许可的信号量可以模拟一个相互排斥的锁。import java.util.concurrent.*;public class SemaphoreTest{ private static Account ... 阅读全文
posted @ 2012-05-05 13:06 小段段 阅读(6666) 评论(0) 推荐(0) 编辑
2012年4月26日
摘要: 下面是一个经典的生产者消费者的例子。假设使用缓冲区存储整数,缓冲区的大小是受限制的。缓冲区提供write(int)方法将一个整数添加到缓冲区,还体统read()方法从缓冲区中读取并删除一个整数。为了同步操作,使用具有两个条件的锁,notEmpty(缓冲区非空)和notFull(缓冲区未满)。当任务相缓冲区添加爱一个int时,如果缓冲区是满的,那么任务将等待notFull状态,当任务从缓冲区总删除一个int时,如果缓冲区是空的,那么任务将等待notEmpty状态。 package LianXi;import java.util.*;import java.util.concurrent.*;i. 阅读全文
posted @ 2012-04-26 22:02 小段段 阅读(433) 评论(0) 推荐(0) 编辑
摘要: 通过保证在临界区上多个线程的相互排斥,线程间可以完全避免竞争状态的发生,但是有时候还是需要线程之间的相互协作。使用条件(Condition)便于线程间通信。一个线程可以指定在某种条件下该做什么。标间是通过调用Lock对象的newCoditionn()方法来实现线程之间的相互通信的。 一旦创建一个条件,就可使用await()、signal()、signalAll()方法来实现线程间通信。await()方法可以让当前线程都处于等待状态,知道条件放生。signal()方法唤醒一个等待的线程,而signalAll()方法唤醒所有等待线程。 假设创建并启动两个任务,一个用来向账户存款,另一个从同一个账. 阅读全文
posted @ 2012-04-26 07:20 小段段 阅读(2793) 评论(0) 推荐(0) 编辑
2012年4月22日
摘要: 上篇说道可是 在主线程或者其他线程中创建自己的线程来执行任务。Runnable task = new TaskClass();new Thread(task).start(); 该方法对单一任务是非常方便的但是由于必须对每个人物创建一个线程,因此对大量的任务而言就是不够高效的。为每个任务创建一个线程可能会限制流量并且影响性能。比如说, 如果一个计算机配置不错,它假设可以流畅的运行 100个线程,但是你弱同时创建了1000个线程,那么cup时间就会不够用,这样就造成了所有线程执行时间都很少,外在表现就是 程序运行缓慢,甚至很多操作无法得到响应,也就是死机。线程池是管理并发执行多个任务的理想方法. 阅读全文
posted @ 2012-04-22 11:46 小段段 阅读(638) 评论(0) 推荐(0) 编辑
2012年4月21日
摘要: Thread类 Thread类为创建线程的构造方法、以及控制线程的方法java.lang.Thread implements java.lang.RunnableThread()创建一个空线程Thread(task:Runnable)为制定任务创建一个线程start()void启动线程是方法run被jvm调用isAlive():bollean测试线程当前是否正在运行setPreority(P:int):void设置线程的优先级p(从1 到10)join()void等待线程结束sleep(millis : long):void使线程睡眠指定的毫秒数yeild():void使线程暂停并允许执行.. 阅读全文
posted @ 2012-04-21 11:54 小段段 阅读(429) 评论(0) 推荐(0) 编辑
2012年4月19日
摘要: 什么是线程 一个程序可能包含多个并发运行的任务,线程(Thread)是指一个任务从头到尾的执行流。线程提供了运行一个任务的机制。对于 Java语言,可以再一个程序中并发得启动多个线程。这些线程可以再多处理器系统上同时运行。 在单处理器系统中,多个线程共享cpu时间成为时间共享。儿操作系统负责调度以及分配资源给每一个线程。因为cpu大部时间都是空闲的,所以这种安排是切实可行的。多线程可以是程序反应更快,交互性更强、执行效率更高。例如,在使用word时,允许在输入文字的同时打印文件或者保存文件。在一些情况下即使在单处理器系统上,多想成程序的运行速度也比单线程的程序更快。 当程序作为一个应用程序运行 阅读全文
posted @ 2012-04-19 23:32 小段段 阅读(622) 评论(0) 推荐(0) 编辑