1.进程是一个可执行的,一个运行的程序,是一个静态的概念。现在的操作系统支持多进程和多线程
2.线程是一个进程中不同的执行路径,每个进程必须有一个主线程
3.一个CPU,在同一个时间点上只能支持一个线程运行。
4.多线程的真正含义是:系统是多CPU,多核处理器
5.创建线程thread,启动线程。
6有两种方式创建一个线程,继承thread类,实现runnable接口。
Constructor Summary | |
---|---|
Thread() Allocates a new Thread object. | |
Thread(Runnable target) Allocates a new Thread object. | |
Thread(Runnable target, String name) Allocates a new Thread object. | |
Thread(String name) Allocates a new Thread object. | |
Thread(ThreadGroup group, Runnable target) Allocates a new Thread object. | |
Thread(ThreadGroup group, Runnable target, String name) Allocates a new Thread object so that it has target as its run object, has the specified name as its name, and belongs to the thread group referred to by group . | |
Thread(ThreadGroup group, Runnable target, String name, long stackSize) Allocates a new Thread object so that it has target as its run object, has the specified name as its name, belongs to the thread group referred to by group , and has the specified stack size. | |
7.线程启动通过调用thread的start方法来调用。
8.在单个CPU中多线程,单线程和多线程在程序不出现异常,不出现阻塞等待输入等等的情况下,单线程和多线程在时间上是没有区别的 那为什么还要提出多线程的概念呢?因为多线程提出的概念是有前提条件的,条件就是,在等待键盘输入,在swing组件触发事件中,在程序发生异常的情况下,在一个线程任务停滞不前,无法执行时,可以让其他线程任务能够顺利执行,这样下来,在一定的程度上,就节约了时间,减少了等待。这就是在单CPU,单核处理器中提出多线程问题的本质。 9.如果是多核处理器,多CPU的程序,那就是真正意义上的多线程同时并存执行。 10.创建线程时,建议使用Implements runnable这个方式,因为这就避免了java单继承的弊病。
|