Chinaunix首页 | 论坛 | 博客
  • 博客访问: 58092
  • 博文数量: 30
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 301
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-25 22:19
个人简介

技术成就一切

文章分类

全部博文(30)

文章存档

2019年(1)

2015年(3)

2014年(24)

2013年(2)

我的朋友

分类: Java

2014-05-26 17:42:14

1、线程 是一个程序里边不同的执行路径(线程是一个程序内部的顺序控制流);
2、进程是一个静态的概念,实际在机器里运行的都是线程;
3、在同一个时间点,CPU只能执行单个线程,轮询执行时间片;
4、线程和进程的区别:
    4.1、每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销;
    4.2、线程可以看成是轻量级的进程,同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换的开销小;
5、多进程:在操作系统中能同时运行多个任务(程序);
6、多线程:在同一应用程序中,有多个顺序流同时执行;

7、java的线程是通过java.lang.Thread类来实现的;
8、VM启动时会有一个由主方法( public static void main( String[] args ){} )所定义的主线程;
9、可以通过创建Thread的实例来创建一个新的线程;
10、每个线程都是通过某个特定的 Thread 对象所对应的方法 run() 来完成其操作的,方法 run()  称为线程体;
11、通过调用Thread 类的 start() 方法来启动一个线程



线程的创建和启动:(两种方式创建新的线程)
    1、第一种:
        1.1 定义线程类,实现 Runnable 接口;
        1.2 Thread newThread = new Thread( target );  // target 为Runnable 接口类型
        1.3  Runnable 接口中只有一个方法:
                    public void run( );   //用来定义线程体
        1.4 使用Runnable 接口可以为多个线程提供共享的数据;
        1.5 在实现 Runnable 接口类的run方法定义中可以使用Thread 的静态方法;
                public static Thread currentThread() 获取当前线程的引用;
    2、第二种
        2.1 可以定义一个Thread 的子类,并且重写其 run 方法,如:
                    class MyThread extends Thread {
                            public void run(){...}
                     }

                然后用 MyThread 定义该类的对象: MyThread myThread = new MyThread( ... );


Tips: 尽量使用实现接口的方式创建线程,这种方式比较灵活,自定义线程类,还可以从别的类继承,还可以实现其他的接口;











阅读(596) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~