标签:
硬盘加载到内存:类加载:一个类一个类的加载。
为了达到多任务的效果,多线程只是其中一种
进程:是指一种“自包容”的运行程序,有自己的地址空间;
线程:是进程内部共享内存地址空间,单一的一个顺序控制流。
多任务的实现有两种方式:
一种是【基于进程】:每个进程就是一个可执行程序。
一种是【基于线程(thread)】:进程内部多任务。
子线程由主线程产生,但是一旦产生以后两者就是相等的。
实现方式:new出子类对象,调用子类的start()方法
Class mythread extends Thread{
public void run(){覆盖方法}
}
实现方式:new出Thread对象,传入实现对象(Runnable接口这个类)再调用Thread对象的start方法。
public class YourThread implements Runnable{
public void run(){覆盖方法}
}
线程是进程内部(共享内存地址空间)单一的一个顺序控制流,开销小。
3.基于进程的特点是允许计算机同时运行两个或更多程序。
4.基于线程的多任务处理环境中,线程是最小的处理单位。
- 创建和启动线程
1.声明一个Thread类的子类,并覆盖run()方法。
2.声明一个实现Runnable接口。 - 线程的五种状态
1.新建状态(new出Thread对象)
2.就绪状态(执行start方法之后,执行run方法之间)
3.运行状态(执行run方法)
4.中断状态
①由于优先级,线程没有抢到CPU
②使用sleep()使线程休眠(线程唤醒后重新参与CPU竞争)
③线程由于等待一个I/O事件被阻塞
④wait-notify机制
⑤挂起yield(),线程强行退出,不管后续
5.死亡状态(run方法执行完后)
- 线程安全
1.描述:如果多个线程访问同一资源对象,可能会造成该资源对象数据混乱。
2.解决方法:同步(锁)。-synchronized
3.效率:线程安全的效率低 线程不安全的效率高。 - 同步问题(死锁)
1.描述:当两个线程访问一对相互依赖的同步资源时会出现死锁。
2.解决方法:wait-notify
标签:
原文地址:http://blog.csdn.net/qq635720747/article/details/51347639