JAVA求学之路第十九天(多线程)

来源:互联网 发布:背单词软件 知乎 编辑:程序博客网 时间:2024/05/19 16:05

第1章 多线程

1.1 线程和进程

l 进程:正在运行的程序。

l 线程:进程中的一个执行单元,每一个线程都是一条执行任务的路径

1.2 第一种实现方式

01. 定义类,然后继承Thread

02. 重写run方法,run方法是线程任务方法

03. 创建这个类的对象,然后调用start方法启动线程

1.3 第二种实现方式

01. 定义(线程任务类),实现Runnable接口

02. 重写run方法

03. 创建Thread对象在构造方法中传入线程任务类对象

04. 调用Thread对象start方法,开启线程

l 好处:解决第一种实现方式的单继承的弊端

1.4 常用的方法

l void setName(String name);设置线程名字

l String getName();获取线程名字

static ThreadcurrentThread();获得到当前正在执行的线程对象

static void sleep(long millis);线程睡眠

1.5 同步代码块

格式

synchronized(对象) {

同步的代码

}

注意:只有持有锁的线程才能够进入到同步代码块中

优点:保证线程安全

缺点:效率低

 

1.6 同步方法

格式

修饰符 synchronized 返回值 方法名字(参数列表) {

 

}

作用保证线程安全,只有一个线程可以进入到同步方法中

如果同步方法是非静态,锁的是this

如果同步方法是静态,锁的是当前类的字节码,类名.class

1.7 生命周期

新建---就绪---运行---死亡

||

等待

 

1.8 死锁

两个以上的线程,各自持有一把对象锁,并且等待其他线程释放锁对象

0 0
原创粉丝点击