每周总结-第八周 多线程

发布时间 2023-09-02 21:54:13作者: 神行乌龟

多线程概述:充分利用计算机资源,同时执行不同的操作

1.计算机操作系统 进程和线程

2.使用java来完成多线程的编码

3.线程中的常用方法

4.线程同步(重点)

5.死锁

6.生产者消费者模型 异步

操作系统简介

操作系统:本质上就是一个运行在一堆硬件上的巨型软件

没有操作系统的话,程序想要操控硬件,需要c语言或者汇编语言

有操作系统后,程序就可以借助操作系统这个中介来运行。

操作系统存在的意义:帮助上层应用程序屏蔽掉硬件的丑陋接口。

进程:是正在执行的程序,其实就是一块内存区域,存储着程序的资源。

线程:是被cpu调度的最小单位。

 

Java多线程

两种方法:

1.继承Thread类,重写run方法

使用线程:创建线程对象 调用start()方法启动一个线程

2.实现Runnable接口 创建run方法

使用线程:先创建Runnable对象 在创建线程对象,线程对象必须指向我的Runnable。

线程中的相关方法

setPriority() 设置优先级 1-10 (优先级高不意味着独占cpu)

sleep() 睡眠(重点) 每隔xxx时间去执行一个xxx操作

Join()让当前线程执行 ,主线程等待。

yield()让出cpu,让别人执行一下

interrupt()打断正在睡眠的线程

线程同步

当多个线程共享同一个资源,在某一个线程访问到这个资源的时候,把这个资源暂时封锁,等待执行结束,释放这个锁。

实现:

1.在方法声明上加一个synchronized关键字

2.在方法内部使用synchronized(){}语句块对特定对象上锁

3.手动上锁 :创建一个所锁

lock.lock()上锁

lock.unlock()解锁