黑马程序员技术交流社区
标题:
【石家庄校区】多线程笔记
[打印本页]
作者:
巴拉巴拉x
时间:
2018-4-23 14:25
标题:
【石家庄校区】多线程笔记
本帖最后由 小石姐姐 于 2018-4-26 17:16 编辑
多线程笔记
多线程
进程:Process, 当前正在运行的程序,专业表述:一个应用程序在内存中的执行区域.
线程: Thread, 进程中的一个执行控制单元,也叫执行路径
一个进程可以有一个线程,单线程---->安全性高,但是效率低
一个进程也可以有多个线程,多线程 ---->安全性低,但是效率高
并发:并行发生
同步:sync,注意并不是同事的意思,同步是指一步接一步的执行,一个执行完毕再开始执行下一个,
单线程就是同步
异步: async,不是一步一步执行,而是同时执行多步,每个步骤何时结束不确定
多线程就是异步
同一个线程内的代码是同步执行的,不同线程的代码是异步执行的
阻塞:
创建线程的第一种方式:创建一个类继承Thread类,该子类重写了Thread类的run()方法,
Thread类的成员方法
String getName();获取此线程的名字
void setName(String s);设置此线程的名字,构造方法创建的是线程的对象
CPU执行程序的随机性,(在每个启动程序之间做着来回高速的随机切换,)执行的单一性(CPU只能同时执行一个进程中任务,为了不卡顿,就高速切换,随机执行已启动程序,实现多个程序同时进行的目标),
主方法(main)是单线程的
在类中调用当前类的方法,直接写方法名,不用对象来调,
共享资源容易出现问题,问题的原因就是CPU的随机机制.
同步
代码块解决线程共享资源的问题. synchronized 关键字(同步:)
问题出现原因:
要有多个线程
要有被多个线程所共享的数据
多个线程要
并发
(同时发生)地访问共享的数据
synchronized:同步,可以修饰代码块和方法,被修饰的代码块和方法一旦被某个线程访问,则直接锁住,其他的线程将无法访问.
格式:
synchronized(锁对象) {
}
注意:
锁对象需要被所有的线程共享
同步的优缺点:
安全性高
效率低
异步的优缺点
效率高
安全性低
同步方法:使用关键字synchronized修饰的方法,一旦被一个线程访问,则整个方法全部锁住,其他线程无法访问
非静态同步方法:锁对象是this.
静态同步方法: 锁对象是当前类的字节码对象
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2