java高并发对数据库int加1_JAVA的高并发基础认知 一

一、多线程的基本知识1.1进程与线程的介绍程序运行时在内存中分配自己独立的运行空间,就是进程线程:它是位于进程中,负责当前进程中的某个具备独立运行资格的空间。进程是负责整个程序的运行,而线程是程序中具体的某个独立功能的运行。一个进程中至少应该有一个线程。1.2多线程的介绍在多任务,多用户的系统中。每天都会产生许多进程。多线程:在一个进程中,我们同时开启多个线程,让多个线程同时去完成某些任务(功能)...
摘要由CSDN通过智能技术生成

一、多线程的基本知识

1.1进程与线程的介绍

程序运行时在内存中分配自己独立的运行空间,就是进程

线程:它是位于进程中,负责当前进程中的某个具备独立运行资格的空间。

进程是负责整个程序的运行,而线程是程序中具体的某个独立功能的运行。一个进程中至少应该有一个线程。

1.2多线程的介绍

在多任务,多用户的系统中。每天都会产生许多进程。

多线程:在一个进程中,我们同时开启多个线程,让多个线程同时去完成某些任务(功能)。

(比如后台服务系统,就可以用多个线程同时响应多个客户的请求)

多线程的目的:提高程序的运行效率。

多线程的运行原理:cpu在线程中做时间片的切换(多线程可以提高程序的运行效率,但不能无限制的开线程)

1.3实现线程的两种方式

1、继承Thread的方式

2、声明实现 Runnable 接口的方式

1.4 JAVA同步 synchronized关键字

加同步格式:

synchronized( 需要一个任意的对象(锁) ){

代码块中放操作共享数据的代码}

synchronized是java中的一个关键字,也就是说是Java语言内置的特性。如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,等待获取锁的线程释放锁,而这里获取锁的线程释放锁只会有两种情况:

1.获取锁的线程执行完了该代码块,然后线程释放对锁的占有

2.线程执行发生异常,此时JVM会让线程自动释放锁。

所以synchronized等待线程能无期限地等待下去:这是一个致命的缺点

所以引进了Lock解决这个问题。

1.5 lock

1.5.1 lock和synchronized的区别

1)Lock不是Java语言内置的,synchronized是Java语言的关键字,因此是内置特性。Lock是一个类,通过这个类可以实现同步访问;

2)Lock和synchronized有一点非常大的不同,采用synchronized不需要用户去手动释放锁,当synchronized方法或者synchronized代码块执行完

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值