进程、线程

进程、线程

https://www.cnblogs.com/fuchongjundream/p/3829508.html

1、进程定义:

进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。

2、程序定义:

程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程则是在处理机上的一次执行过程,它是一个动态的概念。这个不难理解,其实进程是包含程序的,进程的执行离不开程序,进程中的文本区域就是代码区,也就是程序。

3、线程定义:

通常在一个进程中可以包含若干个线程,当然一个进程中至少有一个线程,不然没有存在的意义。线程可以利用进程所拥有的资源,在引入线程的操作系统中,一般都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统多个程序间并发执行的程度。

https://www.cnblogs.com/aspirant/p/8900276.html

1、线程状态图:

//当前线程可转让cpu控制权,让别的就绪状态线程运行(切换)
public static Thread.yield() 
//暂停一段时间
public static Thread.sleep()  
//在一个线程中调用other.join(),将等待other执行完后才继续本线程。    
public join()
//后两个函数皆可以被打断
public interrupte()

IPC:进程间通信(Inter-Process Communication)

AIDL:Android接口定义语言(Android Interface Definition Language)

序列化:Externalizable、Serialize、Parcelable

http://www.cnblogs.com/chenfei0801/archive/2013/04/06/3002146.html

https://blog.csdn.net/jhk312/article/details/6366254

1、Serialize:这种方式代码量少,使用方便,但是开销很大,涉及大量 I/O 操作。适合将对象序列化到存储设备或是通过网络传输的场景。

2、Parcelable:这种方式使用稍微复杂点,但是效率高,是 Android 推荐的序列化方式。适合在内存序列化的场景,如在 Intent 上传递对象数据或是在进程间通信传递对象。

3、Externalizable接口继承Serializable接口,Externalizable提供了writeExternal ()和 readExternal () 方法,这使得我们可以灵活地控制java序列化机制,而非依赖于java的默认机制。

 与Serizable对象不同,使用Externalizabled,就意味着没有任何东西可以自动序列化, 为了正常的运行,我们需要在writeExtenal()方法中将自对象的重要信息写入,从而手动的完成序列化。对于一个Externalizabled对象,对象的默认构造函数都会被调用(包括哪些在定义时已经初始化的字段),然后调用readExternal(),在此方法中必须手动的恢复数据。

有时会希望对象的某一部分不需要被序列化,或者说一个对象被还原之后,其内部的某些子对象需要重新创建,从而不必将该子对象序列化。 在这些情况下,可以考虑实现Externalizable接口从而代替Serializable接口来对序列化过程进行控制(还有一个更简单的方式,通过transient的方式)

问题点

1、虚拟机是否允许反序列化,不仅取决于类路径和功能代码是否一致,一个非常重要的一点是两个类的序列化 ID 是否一致(就是 private static final long serialVersionUID = 1L)

2、序列化时,并不保存静态变量,这其实比较容易理解,序列化保存的是对象的状态,静态变量属于类的状态,因此 序列化并不保存静态变量。

3、Serializable序列化时不会调用默认的构造器,而Externalizable序列化时会调用默认构造器的

4、Serializable 接口没有方法,该接口只是一个标识器接口,标识实现该接口的类是可序列化的比如:

private static final long serialVersionUID = 213213213123L;

Java序列化过程时,依据正确的SerialVersionUID来还原序列化对象的状态。没有显示指定,当该实例对象持久化式,java编译器自动生成一个SerialVersionUID。系统生成UID是会考虑到类的属性的(具体表现为类的hashcode). 如果没有指定SerialVersionUID,当类的成员有变化会导致系统重新产生一个SerialVersionUID,而旧的实例化的类对象将无法正确的还原出状态

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古以来的短板,有效的提升管理的效率和业务水平。传统的管理模式,时间越久管理的内容越多,也需要更多的人来对数据进行整理,并且数据的汇总查询方面效率也是极其的低下,并且数据安全方面永远不会保证安全性能。结合数据内容管理的种种缺点,在互联网时代都可以得到有效的补充。结合先进的互联网技术,开发符合需求的软件,让数据内容管理不管是从录入的及时性,查看的及时性还是汇总分析的及时性,都能让正确率达到最高,管理更加的科学和便捷。本次开发的医院后台管理系统实现了病房管理、病例管理、处方管理、字典管理、公告信息管理、患者管理、药品管理、医生管理、预约医生管理、住院管理、管理员管理等功能。系统用到了关系型数据库中王者MySql作为系统的数据库,有效的对数据进行安全的存储,有效的备份,对数据可靠性方面得到了保证。并且程序也具备程序需求的所有功能,使得操作性还是安全性都大大提高,让医院后台管理系统更能从理念走到现实,确确实实的让人们提升信息处理效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值