本帖最后由 马年出黑马 于 2014-4-4 00:09 编辑
1、进程和线程有什么区别?
进程:正在执行的程序,线程是进程中的内容。每个应用程序中至少有一个线程,每一个进程执行都有一个执行顺序,该顺序是一个执行路径或者叫一个控制单元。进程就是用于定义空间标示空间,进程以启动在内存中就分配一块空间。
线程:就是进程中的一个独立的控制单元线程在控制着进程的执行,一个进程中至少有一个线程。所以说进程中包含线程,而线程决定进程的生命周期。
2、多线程存在的意义以及特性
多线程意义:多代码同时运行,提高效率。
特性:随机性,在某一时刻只能有一个线程在运行(多核除外)比如我们用电脑即能听歌,有能看视频,因为CPU在做着高速的切换,以达到看上去同时运行的效果,我们可以形象的把多线程运行行为看做是在抢夺CPU的执行权,谁抢到谁执行。
什么时候使用线程:当某些代码需要被同时执行时就用单独的线程进行封装。
3、创建线程方法之一(继承Thread类)
//创建线程 通过对API文档的查找发现java已经封装好对这类事物操作的对象 即Thread类
//创建线程的第一种方法 继承Thread类 并复写其中的run方法
步骤:1、定义一个类继承Thread
2、覆写Thread类中的run方法(将自定义的代码存储到在run方法中,让线程运行)
3、调用线程中的start方法,该方法有两个作用:启动线程和调用线程中run方法
eg:代码示例
- class Demo extends Thread
- {
- public void run()
- {
- for(int i=0;i<100;i++)
- {
- System.out.println("第一个线程"+"-----"+i);
- }
- }
- }
- class ThreadDemo1
- {
- public static void main(String[] args)
- {
- //建立好一个对象就创建好一个线程
- Demo d= new Demo();
- //调用start方法 目的是开启线程并调用run方法
- d.start();
- for(int i=0;i<100;i++)
- {
- System.out.println("主线程main"+"-----"+i);
- }
- }
- }
- //运行结果是互相交错的 因为该程序中有两个线程 main线程和d线程 cup在这两个线程之间做着高速切换的动作
- //多个线程在抢劫cpu资源
复制代码
4、 为什么要覆盖run方法?
Thread类中用于描述线程,该类就定义了一个功能,用于存储线程要运行的代码,该存储功能就是run方法,也就是说Thread类中的run方法,是用于存储线程要运行的代码。(就是告诉线程你如果要干活,就干这一块别的不要管就行)。
|