2023-2-20 多线程

本文介绍了线程的基本概念,包括进程、线程和它们之间的关系,以及线程的三种实现方式:继承Thread类、实现Runnable接口和使用Callable与FutureTask。接着讨论了线程安全问题及其产生的原因和条件,提出了synchronized和lock锁作为解决方案。
摘要由CSDN通过智能技术生成

目录

一.什么线程

1.概念:

二.如何实现

1. 方式一:

2.方式二

3.方式三

三.线程可能产生的问题

1.线程安全问题

四.线程安全问题解决办法

1.synchronized锁

2.lock锁

五.疑惑点归纳


一.什么线程

1.概念:

(1).进程:就是一个有独立功能并且可现实的程序。比如我们打开一个QQ、腾讯会议等等都属于进程。

(2).线程:共享进程资源的一句或者一段代码都可以是一个线程。如:int i = 0; 或者 System.Out.Print(i);

(3).进程与线程的关系:一个进程至少有一个线程,线程是进程的一部分,所以线程也被称为轻              权级进程或者轻量级进程。

(4).并发:一段可近似忽略的时间内,多个线程同时(其实是交替执行)执行的。

(5).并行:同一时刻,多个线程同时执行。

二.如何实现

1. 方式一:

(1).继承Thread类。

(2).重写run()方法。

(3).使用  .start()开启线程。

2.方式二

(1).实现Runnable接口。

(2).实现call()方法。

(3).创建线程的对象和Thread对象,并用创建的线程对象作为Thread对象的参数。

(4).打开线程 .start()。

3.方式三

(1).城建线程实现类实现callable接口的call()方法。

(2).实例化线程实现类。

(3).实例化FutureTask类,并且把线程实现类作为参数。

(4).创建Thread类。

(5).start()开启线程。

三.线程可能产生的问题

1.线程安全问题

        (1).产生原因:多个线程访问共享资源。

        (2).产生条件:必须具备大于等于2个进程才会发生线程安全问题。

四.线程安全问题解决办法

1.synchronized锁

(1).使用位置:方法上,方法体和synchronized代码块。

(2).锁定代码块执行完自动解锁。

2.lock锁

(1).   lock.lock():上锁。

(2).   lock.unlock():解锁。

五.疑惑点归纳

.......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值