线程是程序执行的基本原子单位. 一个进程可以由多个线程组成.在分布式编程中,正确使用线程能够很好的提高应用程序的性能及运行效率. 实现原理是将一个进程分成多个线程,然后让它们并发异步执行,来提高运行效率.并发执行并不是同时执行(占有CPU),任意时刻还是只能有一个线程占用CPU,只不过是它们争夺CPU频繁一些,感觉到他们似乎都在运行.多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创建多个并行执行的线程来完成各自的任务。死锁产生的四个必要条件:互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用。请求与保持条件(Hold and wait):已经得到资源的进程可以再次申请新的资源。非剥夺条件(No pre-emption):已经分配的资源不能从相应的进程中被强制地剥夺。循环等待条件(Circular wait):系统中若干进程组成环路,改环路中每个进程都在等待相邻进程正占用的资源。死锁解决策略:分为发生前的预防和发生后的检测恢复,如下1.忽略该问题。例如鸵鸟算法,该算法可以应用在极少发生死锁的的情况下。为什么叫鸵鸟算法呢,因为传说中鸵鸟看到危险就把头埋在地底下,可能鸵鸟觉得看不到危险也就没危险了吧。跟掩耳盗铃有点像。2.检测死锁并且恢复。3.仔细地对资源进行动态分配,以避免死锁。4.通过破除死锁四个必要条件之一,来防止死锁产生。数据的持久化是指将从数据库取出的数据进行封装,放在一个对象里,目的是为了以后的使用更加高效,不必每次都从数据库里取数据。(个人理解)实体bean主要存储业务数据文件流 -- 指与输入输出设备有关的数据的流动,也指流动的数据本身字符流和字节流是根据处理数据的不同来区分的。字节流按照8位传输,字符流按照16位传输由于字符流使用Unicode字符集,支持多国文字,因此若流要跨越多种平台传输,应使用字符流。按kilojin的说法,字符流的传输效率比字节流的高. |