栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java多线程锁(java多线程不会进入阻塞)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java多线程锁(java多线程不会进入阻塞)

Java---进程

一、线程的基本概念

1、进程2、线程

三级目录 二、Java实现线程的程序

1、java.lang.Thread类2、Thread类的方法3、java.lang.Runnable接口 三、线程安全

1、线程安全2、同步代码块3、同步方法 四、JDK新特性Lock锁

一、线程的基本概念 1、进程

概念:应用程序运行的时候进入到内存中,程序在内存中占用的内存空间(进程)

2、线程

线程:在内存和CPU之间,建立一条连接通路,CPU可以到内存中取出数据进行计算,这个链接的通路,就是线程
一个内存资源:一个独立的进程,进程中可以开启多个线程
并发:同一个时刻多个线程同时操作了同一个数据
并行:同一个时刻多个线程同时执行不同的程序

三级目录 二、Java实现线程的程序 1、java.lang.Thread类

实现线程程序的方法
1、定义类继承Thread类
2、子类重写方法run
3、创建子类对象
4、调用子类对象的方法start()启动线程

2、Thread类的方法

getName()返回线程名字,返回值是String类型

public class TheadName extends Thread{
    public void run(){
    }
}
public class getNameTest {
    public static void main(String[] args) {
        TheadName theadName = new TheadName();
        System.out.println(theadName.getName());
    }
}

静态方法:Thread currentThread()静态调用返回当前的线程对象

Thread thread = Thread.currentThread();
System.out.println(thread.getName());

join()方法:执行join()方法的线程,他不结束,其他线程运行不了
静态方法:static yield()线程让步,线程把执行权让出

3、java.lang.Runnable接口

实现线程程序的步骤

1、定义类实现接口
2、重写接口的抽象方法
3、创建Thread类对象
Thread类构造方法中,传递Runnable接口的实现类对象
4、调用Thread对象方法start()启动线程

三、线程安全 1、线程安全

线程安全:多线程操作一个资源,有可能出现安全问题
出现的原因:一个线程还没有结束,另一个线程就开始操作了
解决办法:

2、同步代码块

同步代码块可以解决线程安全问题:格式:synchronized ()关键字

synchronized (任意对象){
//线程操作的共享资源
}

任意对象:在同步中这个对象称为对象锁,简称锁(对象监视器)

同步代码块执行原理:

1、线程执行到同步时,判断锁是否存在
如果锁存在,获取到锁,进入到同步中执行
执行完毕,线程出去同步代码块,归还锁
2、线程执行到同步时,判断锁是否存在
如果锁不存在,线程只能在同步代码块外等待锁

3、同步方法

当一个方法中,所有代码都是线程操作的共享内容,可以在方法的定义上添加同步的关键字synchronized,同步的方法,或者称为同步的函数

同步方法中对象锁是this
静态同步方法中对象锁是:本类.class属性

四、JDK新特性Lock锁

JDK新特性:java.concurrent.locks包,定义了接口Lock
Lock接口代替了synchronized,可以更加灵活
Lock接口的方法

void lock()获取锁
void unlock()释放锁

Lock的实现类ReentrantLock

线程通信的方法wait(),notify()

1、方法的调用必须写在同步中
2、调用者必须是作为锁的对象
3、wait(),notify()为什么要定义在Object
同步中的锁,是任意对象,任意类都继承Object

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/773226.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号