黑马程序员技术交流社区

标题: 多线程第一天笔记 [打印本页]

作者: 南无ice    时间: 2015-12-26 23:28
标题: 多线程第一天笔记
这几天断了,一个是为了查看自己学的牢固不,再一个就是将前面的内容进行一个断了之后的回忆。今天继续开始学习。分享个第一天的笔记吧。都是WORD保存,还未传到博客。
多线程
概述:
进程: 是一个正在执行中的程序
     每一个进程执行都有一个执行顺序。该顺序是一个执行路径,或者叫一个控制单元
线程:  就是进程中的一个独立的控制单元。
                |——线程在控制着程序的执行。
一个进程中至少有一个线程。
Java  VM(虚拟机)  启动的时候会有一个进程Java.exe 。
该进程中至少有一个线程负责Java程序的执行。
该线程称为主线程。
扩展:其实更细节说明JVM,JVM启动不止一个线程,还有负责垃圾回收机制的线程。

1.如何在自定义的代码中,自定义一个线程呢?
  通过对API的查找,Java已经提供了对线程这类事物的描述。就是Thread类。
创建线程的第一种方式:继承Thread类。
操作步骤: 1.定义类继承Thread类
                 2.覆写Thread类中的run方法。
                  目的:将自定义代码存在run方法。让线程运行。
               3.调用线程start方法
                    该方法两个作用:启动线程,调用run方法。
代码: 图例  
解析:        发现运行结果每一次都不同。
因为多个线程都获取CPU的执行权。CPU执行到谁,谁就运行。
明确一点,在某一时刻,只可以有一个程序在运行(多核除外)
其实是CPU在做着快速的切换,已达到看上去同时运行的效果。
我们可以形象的把多线程的运行形容为在互相抢夺CPU的执行权。
这就是多线程的一个特性: 随机性 。
   |——谁抢到谁就执行,至于执行多长时间,CPU决定。

2:创建线程run()和start()的特点
Thread类用于描述线程。
该类就定义了一个功能,用于存储线程要执行的代码。该存储功能就是run方法。
也就是说Thread类中的run方法,用于存储线程要执行的代码。
重要面试经常问到:
d.start(); ——开启线程模式并执行该线程的run方法。
d.run();   ——仅仅是对对象的调用方法。而线程创建了,并没有运行。
线程的5种运行状态:


3:获取线程对象及线程名称
原来线程都有自己的默认的名称。
Thread – 编号 : 该编号从0开始。
static Thread currentThread():获取当前线程对象。
getName() :获取线程名称。

设置线程名称:setName或者构造函数。
部分图例代码都是图片这边不显示。
作者: 注意背后    时间: 2015-12-26 23:47
加油,坚持笔记
作者: 一大把手    时间: 2015-12-27 12:59
坚持记笔记是一个好习惯
作者: Java1211张美红    时间: 2015-12-28 11:55
多做总结,加油!
作者: 李放    时间: 2015-12-28 18:19
加油加油!~
作者: 黑马小卒    时间: 2015-12-28 20:45
加油!!!!
作者: 337325635    时间: 2015-12-29 21:52
好笔记{:2_33:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2