线程

线程和多线程

一 .线程概述

(一).概念

​ 线程:就是在一个进程中负责一个执行路径。

​ 多线程:是实现多个线程并发执行的技术。

(二).线程的好处

​ 1.线程之间的切换相较于进程之间的切换需要操作系统做的工作很少

​ 2.线程占用的资源要比进程少很多

​ 3.能充分利用多处理器的可并行数量

​ 4.等待慢速 IO操作结束以后,程序可以执行其他的计算任务

​ 5.计算(CPU)密集型应用,为了能在多处理器系统上运行,将计算分解到多个线程中实现

​ 6.IO密集型应用,为了提高性能,将IO操作重叠,线程可以等待不同的IO操作。

(三).多线程的弊端

​ 1.降低了一个进程里面的线程的执行频率。

​ 2.对线程进行管理要求额外的CPU开销。线程的使用会给系统带来上下文切换的额外负担。

​ 3.公有变量的同时读或写,当多个线程需要对公有变量进行写操作时,后一个线程会修改掉前一个线程存放的数据,发生线程安全问题。

​ 4.线程的死锁:较长时间的等待或资源竞争以及死锁等多线程症状。

二.定义线程执行体的两种常用方式

(一). 创建线程的方式一

1.继承Thread;

2.重写run()方法,把要执行的任务放在run()方法中;

3.调用start()方法启动线程

(1).继承Thread类
优点:编写简单,可直接操作线程
缺点:不能再继承其它类

(二)创建线程的方式二

1.定义一个类实现Runnable接口

2.实现Runnable接口的run( )定义线程执行体

3.创建Runnable接口实现类对象

4.以实现类对象作为参数构建Thread类对象

5.调用start方法启动线程

(1)实现Runnable接口
优点:可以继承其它类,便于共享资源
缺点:需要通过Thread.currentThread()方法获取线程对象再进行操作

三.如何解决线程安全问题

解决线程安全三种方式:

(一).避免共享,分而治之

(二).建立副本

(三).实现多个线程对共享数据有序互斥访问

四.多线程使用的场景

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值