多线程与锁机制【Java 】

并发:指两个或多个事件在同一个时间段内发生

并行:指两个或多个事件在同一时刻发生(同时发生)

进程:指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程。

线:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个线程中至少有一个线程。

 

 

实现Runnable接口创建多线程的好处:

    1. 避免了单线程的局限性

          一个类只能继承一个类,而接口可以有多个

    2 . 增强了程序的扩展性,降低了程序的耦合性(解耦)

            把设置线程任务和开启线程任务进行了分离

 

匿名内部类

    格式:

                new 父类/接口(){

                     重写父类/接口中的方法

};

 

解决线程安全问题

方法一: 同步代码块

格式:

        synchronized锁对象){

          可能出现的线程安全问题的代码(访问了共享数据的代码)

}

注意:

    1. 通过代码块中的锁对象,可以使用任意的对象

     2 . 但是必须保证多个线程使用的锁对象是同一个

    3 . 锁对象的作用:

                            把同步代码锁住,只同时让一个线程在同步代码块中执行

 

方法二:锁

注意:

        在定义成员变量时调用锁接口

       在可能出现安全问题的代码前开启锁

       在可能出现安全问题的代码后关闭锁

 

Lambda表达式:是可推导,可以省略

凡是根据上下文推导出来的内容,都可以省略书写

可以省略的内容:

 1 .   (参数列表):括号中参数列表的数据类型,可以省略不写

 2 .   (参数列表):括号中的参数如果只有一个,那么类型和()都可以省略

 3 .   (一些代码):如果{}中的代码只有一行,无论是否有返回值,都可以省略({},return,分号)

     注意:要省略{},return,分号必须一起省略。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值