2013年5月7日

时间:2022-01-04 14:30:09

进程是执行中的程序,是OS资源管理的最小单位,包括独立的地址空间,申请的系统资源等。

 

线程是单一顺序的控制流,执行一段功能代码,是CPU分配的最小单位。

 

区别是线程没有独立的地址空间。

 

关系是进程中可以包含多个线程,有主线程管理子线程(启动、挂起、停止)。

 

Java的线程类是java.lang.Thread类

Thread对象的方法run()来完成其操作的,方法run( )称为线程体

 

public Thread()

public Thread(Runnable target)

public Thread(Runnable target, String name)

public Thread(String name)

 

在Java中有两种方法实现线程体:一是继承线程类Thread,二是实现接口Runnable。

线程中有一个stop()方法也可以停止线程,但是由于这种方法会产生线程死锁问题,
所以在新版JDK中已经废止了,它的替代解决方法就是增加标识,就是我们在本例中采用的方案。

android要求主线程的职责是显示UI控件、处理UI事件、启动子线程、停止子线程和更新UI,子线程的职责是计算逝去的时间和向主线程发出更新UI消息。

android和线程相关的对象Handler、Message、MessageQueue、Looper、HandlerThread。

 

===============================================
(1)、在子类的dealloc方法中调用基类的dealloc方法
(2)、在一个函数中创建并返回对象,需要把这个对象设置为autorelease
(3)、Release一个对象后,立即把指针清空。(顺便说一句,release一个空指针是合法的,但不会发生任何事情)
(4)、指针赋值给另一个指针。引用计数需要确认检查
(5)、NSAutoreleasePool自身在销毁的时候,会遍历一遍这个数组,release数组中的每个成员。
     如果此时数组中成员的retain count为1,那么release之后,retain count为0,对象正式被销毁。
     如果此时数组中成员的retain count大于1,那么release之后,retain count大于0,此对象依然没有被销毁,
     内存泄露。
(6)、ClassA *obj1 = [[ClassA alloc] init];
(7)、[obj1 dealloc];
(8)、[obj1 release];


(9)、NSString、NSMutableString
(10)、NSArray 用来存储对象的有序列表
      只能存储Objective—C的对象,不能存储C语言的基本数据类型(int、float、enum、struct、
      或者NSArray中的随机指针)。同时也不能存储nil(对象的零值或NULL值)

(11)、NSEnumerator* enumerator = [array objectEnumerator];

===============================================
Android官方提供的支持不同屏幕大小的全部方法

(1)、使用 "wrap_content" 和 "match_parent"
(2)、使用RelativeLayout
(3)、使用Size限定符

 

===================================================

 Apache是web服务器,Tomcat是应用(java)服务器,它只是一个servlet容器,是Apache的扩展。

 Apache和Tomcat都可以做为独立的web服务器来运行,但是Apache不能解释java程序